gpt4 book ai didi

python - Scrapy:如何调试 scrapy 丢失的请求

转载 作者:太空狗 更新时间:2023-10-30 01:34:21 25 4
gpt4 key购买 nike

我有一个 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,看起来requests就这样消失了。

我还添加了这些参数以尽量减少可能的错误:

CONCURRENT_REQUESTS_PER_DOMAIN = 1
DOWNLOAD_DELAY = 0.8

由于twisted的异步特性,我不知道如何调试这个bug。我发现了一个类似的问题:Python Scrapy not always downloading data from website , 但它没有任何反应

最佳答案

开启,跟Rho一样的note,可以添加设置

DUPEFILTER_CLASS = 'scrapy.dupefilter.BaseDupeFilter' 

到您的“settings.py”,这将删除 url 缓存。这是一个棘手的问题,因为在 scrapy 日志中没有调试字符串告诉您它何时使用缓存结果。

关于python - Scrapy:如何调试 scrapy 丢失的请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20723371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com