【问题标题】:how to fix ERROR: Spider error processing GET url如何修复错误:处理 GET url 的蜘蛛错误
【发布时间】:2019-04-18 16:52:26
【问题描述】:

我正在抓取电子商务网站,并抓取了多个类别,但其中一些产生了结果,但一些链接得到了错误:蜘蛛错误处理...请帮助我如何对其进行排序...

this is code

this is code 2

this is the error in console

【问题讨论】:

  • 请尽量将有助于解决您的问题的最少代码与您的问题放在一起,而不是发布代码的图像。
  • 他们没有让我上传我的代码...顺便说一句,我正在抓取一个网站,根据 url 请求具有元“类别”的网站的不同 url...但是一些返回结果和一些给予处理错误...请检查图片中的代码
  • Samsung_Tablets = response.urljoin("prices/tablets/samsung") yield scrapy.Request(Samsung_Tablets, callback = self.parse_products, meta = {'category' : 'Tablets','subcategory' : '三星', '品牌': '三星'}, dont_filter=True)
  • INFO:爬取 27 页(14 页/分钟),抓取 282 项(194 项/分钟)2019-04-18 21:31:50 [scrapy.core.engine] 调试:爬取 (200) shophive.com/catalogsearch/result/index/…> (referer: shophive.com/catalogsearch/result/?q=+mobile+phones+onepl) 2019-04-18 21:31:50 [scrapy.core.scraper] ERROR: Spider error processing shophive.com/catalogsearch/result/index/…> (referer: @987654327 @)
  • 欢迎来到 Stackoverflow。请花一些时间阅读本指南:How to create a Minimal, Complete, and Verifiable example

标签: python parsing request scrapy web-crawler


【解决方案1】:

根据您来自控制台的错误数据,带有 p 参数 ?p=2 的 url 上发生错误 - 这意味着您的刮板不处理特定搜索的第二页。
您的应用程序似乎没有将元数据传输到下一个请求。

您的蜘蛛的parse_products 方法需要来自parse 方法的元数据。
我想您负责搜索结果分页的parse_products 代码如下所示:

yield Request(next_url,callback=self.parse_products)

如果它是真的,您的应用程序将无法读取元数据并引发错误,例如从您的控制台。
在这种情况下,您需要在parse_products mehtod 中将元参数添加到下一页请求:

yield Request(next_url, meta = response.meta,callback=self.parse_products)

【讨论】:

  • 感谢您的建议,我收到错误,它在链接中...感谢您的宝贵时间
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多