【问题标题】:Scrapy XPath doesn't get all links in page while Chrome doesScrapy XPath 无法获取页面中的所有链接,而 Chrome 获取
【发布时间】:2020-11-10 02:20:42
【问题描述】:

我正在尝试使用 scrapy 获取页面“https://www.jumia.com.eg”上的所有链接。

代码是这样的:

all_categories = response.xpath ('//a')

但是我在结果中发现了很多缺失的链接。

结果的计数是 242 个链接。

当我尝试使用 Chrome 开发者工具时,我得到了所有的链接,结果的计数是 608 与相同的选择器 xpath (//a)。

为什么 Scarpy 不能使用上述选择器获取所有链接,而 Chrome 可以?

【问题讨论】:

标签: python google-chrome xpath scrapy screen-scraping


【解决方案1】:

事实证明,问题是因为贾斯汀评论说,数据是使用 Javascript 加载的。

【讨论】:

    【解决方案2】:

    那是因为该网站正在使用 reCAPTCHA。

    如果您在 scrapy shell 中键入:view(response),您会注意到您实际上正在解析 reCAPTCHA 页面(这解释了意外的 a 标签):

    您可以尝试解决 reCAPTCHA(不确定这有多容易,但 this question 可能会有所帮助)...或者您可以从代理运行 scraper,例如 Crawlera它使用旋转 IP...我没有使用过 Crawlera,但根据他们的网站,它会多次重试该页面(使用不同的 IP),直到它到达一个干净的页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-22
      • 2021-11-25
      • 2020-02-05
      • 2020-02-29
      • 2011-01-15
      相关资源
      最近更新 更多