XPath抓取immobiliare.it数据为空,求加载延迟解决方案
解决immobiliare.it页面抓取XPath返回空的问题
核心问题明确:这个页面是JavaScript动态渲染的,你用普通curl/wget下载的只是初始空壳HTML,里面根本没有price、squaremeter这些房源数据——跟延迟等待关系不大,就算sleep再久,静态请求也拿不到JS加载的内容。
替代方案:用支持JS渲染的工具抓完整页面
要是继续用Bash脚本,推荐用无头Chrome/Chromium加载页面,等JS执行完再导出完整HTML。直接能用的命令示例:chromium --headless --disable-gpu --dump-url "https://www.immobiliare.it/search-list/?idContratto=1&idCategoria=1&criterio=prezzo&ordine=asc&__lang=it&vrt=43.733724%2C10.792973%3B43.723459%2C10.802071%3B43.7267%2C10.809066%3B43.729383%2C10.804582%3B43.732701%2C10.801835%3B43.733554%2C10.800977%3B43.735104%2C10.795913%3B43.733724%2C10.792973&pag=1" > full_page.html这个命令会让无头浏览器加载页面、执行所有JS,把最终渲染好的HTML存到
full_page.html里,之后用XPath工具解析这个文件就能拿到目标字段。验证XPath有效性
先打开full_page.html确认里面确实有price、squaremeter这些内容,再调整XPath。比如价格的XPath可能是//div[contains(@class, 'listing-item__price')]/text(),要以实际渲染后的HTML结构为准,别用初始静态页的结构瞎写。脚本改造方向
把原来的curl/wget步骤换成上面的chromium命令,要是怕加载不充分,可以在脚本里加sleep 3给JS留足加载时间,再对生成的full_page.html做XPath解析。
内容的提问来源于stack exchange,提问作者eofficecom com
相关产品推荐
相关产品推荐

