采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师,scrapy-redis 在请求出现异常时,这个请求的指纹加入到DUPEFILTER重键吗,什么情况下会将请求的指纹加入到去重键里?
课程中讲解过scrapy的工作流 ,通过工作流可以看出来 engine拿到request 然后放入队列中 也就是如果先放入队列 然后下载
下载后,如果状态码是500,或者其他异常,request指纹会被加入到redis去重键里吗,根据什么规则决定要不要加入到redis去重键里呢
这里的源码逻辑是 遇到Request先放入到去重队列中,然后放入到待抓取队列的 ,最后才是从这个对列中获取request抓取。所以在抓取前就已经入队列了,这个地方如果你想自己处理防止500的状态码不继续抓取,你可以拦截500错误的请求 然后yield一个相同的request 并且设置 dont_filter=True就不会被过滤了
非常感谢!
通过这个源码可以看出来
这个是入request队列的规则
登录后可查看更多问答,登录/注册
带你彻底掌握Scrapy,用Django+Elasticsearch搭建搜索引擎
4.7k 30
2.5k 18
1.1k 18
1.3k 15
2.7k 15