【问题标题】:Scrapy not extracting data from a certain xpathScrapy没有从某个xpath中提取数据
【发布时间】:2019-02-04 22:12:50
【问题描述】:

我正在尝试从亚马逊产品页面中提取一些数据。

我正在寻找的是从产品中获取图像。例如:

https://www.amazon.com/gp/product/B072L7PVNQ?pf_rd_p=1581d9f4-062f-453c-b69e-0f3e00ba2652&pf_rd_r=48QP07X56PTH002QVCPM&th=1&psc=1

通过使用 XPath

//script[contains(., "ImageBlockATF")]/text()

我得到了包含 url 的源代码部分,但 chrome XPath 帮助器中弹出了 2 个选项。

通过使用 XPath 进行尝试,我最终使用了这个:

//*[contains(@type, "text/javascript") and contains(.,"ImageBlockATF") and not(contains(.,"jQuery"))]

它专门为我提供了我需要的数据。

我遇到的问题是,对于某些产品(它可能发生在 2 双不同的鞋子内),有时我可以提取数据,而其他时候什么都没有。我通过这样做来提取:

imagenesString = response.xpath('//*[contains(@type, "text/javascript") and contains(.,"ImageBlockATF") and not(contains(.,"jQuery"))]').extract()

如果我使用 chrome xpath 帮助程序,数据总是与上面的 xpath 一起出现,但在程序本身中有时会出现,有时不会出现。我知道有时控制台读取的脚本与网站上显示的脚本不同,但我正在努力解决这个问题,因为有时它可以工作,有时它不能。对可能发生的事情有任何想法吗?

【问题讨论】:

    标签: python-3.x xpath scrapy


    【解决方案1】:

    我想我发现了你的问题:它是一个验证码。

    按照以下步骤重现:

    1。运行scrapy shell

    scrapy shell https://www.amazon.com/gp/product/B072L7PVNQ?pf_rd_p=1581d9f4-062f-453c-b69e-0f3e00ba2652&pf_rd_r=48QP07X56PTH002QVCPM&th=1&psc=1
    

    2。 view response喜欢scrapy

    view(respone)
    

    执行此操作时,我有时会收到验证码。 希望这能为您指明正确的方向。

    干杯

    【讨论】:

    • 感谢您的帮助!所以我在响应中看到的基本上是我的蜘蛛在我尝试解析项目时尝试读取的源代码?
    • 正确。 'view(response)' 应该打开你的网络浏览器,它会像 scapy 看到的那样呈现响应。
    • 谢谢!这帮助很大
    猜你喜欢
    • 2014-11-07
    • 1970-01-01
    • 2016-05-09
    • 1970-01-01
    • 2021-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-15
    相关资源
    最近更新 更多