请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

scrapy-redis中DUPEFILTER键入库规则

老师,scrapy-redis 在请求出现异常时,这个请求的指纹加入到DUPEFILTER重键吗,什么情况下会将请求的指纹加入到去重键里?

正在回答

2回答

课程中讲解过scrapy的工作流 ,通过工作流可以看出来 engine拿到request 然后放入队列中 也就是如果先放入队列 然后下载

0 回复 有任何疑惑可以回复我~
  • 提问者 sjdgbhb #1
    下载后,如果状态码是500,或者其他异常,request指纹会被加入到redis去重键里吗,根据什么规则决定要不要加入到redis去重键里呢
    回复 有任何疑惑可以回复我~ 2020-03-30 19:01:09
  • bobby 回复 提问者 sjdgbhb #2
    这里的源码逻辑是 遇到Request先放入到去重队列中,然后放入到待抓取队列的 ,最后才是从这个对列中获取request抓取。所以在抓取前就已经入队列了,这个地方如果你想自己处理防止500的状态码不继续抓取,你可以拦截500错误的请求 然后yield一个相同的request 并且设置 dont_filter=True就不会被过滤了
    回复 有任何疑惑可以回复我~ 2020-03-31 17:38:15
  • 提问者 sjdgbhb #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-04-03 11:13:43
bobby 2020-03-30 09:08:15

https://img1.sycdn.imooc.com//szimg/5e81467409c7b5c308390308.jpg 通过这个源码可以看出来

0 回复 有任何疑惑可以回复我~
  • 提问者 sjdgbhb #1
    这个是入request队列的规则
    回复 有任何疑惑可以回复我~ 2020-03-30 18:58:42
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信