刮擦的空 xpath 响应



我正在尝试从这个网址获取图像的网址:https://www.iproperty.com.my/sale/all-residential/.

使用 Chrome 扩展程序 Xpath Helper,我已经确定了 Xpath,并使用 Scrapy Shell 来获得响应:

fetch("https://www.iproperty.com.my/sale/all-residential/")
response.xpath("//div[@class='cFwUMy']/div[@class='fUtkLG']/div[@class='slick-initialized slick-slider']/div[@class='slick-list']/div[@class='slick-track']/div[@class='slick-slide slick-active'][1]/div[@class='img-wrapper']/a/div[@class='cHKlDH']/img[@class='lazyautosizes lazyloaded']/@src")

但是,它不会返回任何内容。

我也试过:

response.xpath("//div[@class='img-wrapper']/a/div[@class='cHKlDH']")

仍然不工作。

如何从页面获取图像的网址?我已经成功地获得了标题、位置和价格,但坚持要获取图像。

编辑1:

太奇怪了,我试过了

response.xpath("div[@class='img-wrapper']/a")

它按预期返回链接,但

response.xpath("div[@class='img-wrapper']/a/div[@class='cHKlDH']")

response.xpath("//div[@class='cHKlDH']")

只是拒绝退还任何东西。

Scrapy 只下载初始页面响应

它不像我们的普通浏览器那样执行Javascript。

技巧是,在浏览器中禁用Javascript,然后检查所需的元素是否存在

在上面提到的网站中,他们在初始页面响应中具有JSON格式的图像链接,之后

在刮擦中,你可以做到

re.findall(r"window.__INITIAL_STATE__ =(.*)window.__RENDER_APP_ERROR__", response.body, flags=re.DOTALL)

它将返回此 JSON 代码,https://jsoneditoronline.org/?id=bbef330441b24957aeaceedcea621ba7

listings > items键,它包含您需要的所有数据,价格/图像

这是完整的工作Python代码

https://repl.it/@UmairAyub/AdmirableHilariousSpellchecker

相关内容

  • 没有找到相关文章

最新更新