python – Scrapy:如何调试scrapy丢失的请求
发布时间:2020-12-20 13:39:06 所属栏目:Python 来源:网络整理
导读:我有一个scrapy蜘蛛,但它有时不会返回请求. 我发现通过在产生请求之前和获得响应之后添加日志消息. Spider遍历页面并解析每个页面上的项目报废链接. 这是代码的一部分 SampleSpider(BaseSpider): .... def parse_page(self,response): ... request = Request
我有一个scrapy蜘蛛,但它有时不会返回请求.
我发现通过在产生请求之前和获得响应之后添加日志消息. Spider遍历页面并解析每个页面上的项目报废链接. 这是代码的一部分 SampleSpider(BaseSpider): .... def parse_page(self,response): ... request = Request(target_link,callback=self.parse_item_general) request.meta['date_updated'] = date_updated self.log('parse_item_general_send {url}'.format(url=request.url),level=log.INFO) yield request def parse_item_general(self,response): self.log('parse_item_general_recv {url}'.format(url=response.url),level=log.INFO) sel = Selector(response) ... 我已经比较了每条日志消息的数量,“parse_item_general_send”大于“parse_item_general_recv” 最终统计数据中没有400或500个错误,所有响应状态代码仅为200.看起来请求只是消失了. 我还添加了这些参数以最大限度地减少可能的错误: CONCURRENT_REQUESTS_PER_DOMAIN = 1 DOWNLOAD_DELAY = 0.8 由于扭曲的异步性质,我不知道如何调试这个bug. 解决方法
在和Rho相同的音符上,您可以添加设置
DUPEFILTER_CLASS = 'scrapy.dupefilter.BaseDupeFilter' 到你的“settings.py”将删除网址缓存.这是一个棘手的问题,因为scrapy日志中没有调试字符串告诉您何时使用缓存结果. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |