码迷,mamicode.com
首页 > 其他好文 > 详细

返回码418,scrapy 重新请求

时间:2020-07-08 19:36:11      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:ddl   直接   nbsp   ref   爬虫   mod   ons   问题   code   

问题情景:

scrapy爬取网页,返回值418(按照请求来说,是一个完整的网络请求)。说明此接口已经被后台爬虫检测程序检测到了。

通过研读scrapy文档,在自定义的418检测下载中间件里面,process_response中检测返回值,并设置request的http/https代理,然后return request。

见文档:https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#scrapy.downloadermiddlewares.DownloaderMiddleware.process_response

按照文档所述,此request会被加入到下载调度器中重新download。

bug: 

返回的request未生效!!!没有重新下载!

解决

通过研读RetryMiddleware的源码。见:https://docs.scrapy.org/en/latest/_modules/scrapy/downloadermiddlewares/retry.html#RetryMiddleware

request.dont_filter = True # 禁止被过滤掉

说明直接返回request会被过滤掉。需要设置dont_filter。

 

返回码418,scrapy 重新请求

标签:ddl   直接   nbsp   ref   爬虫   mod   ons   问题   code   

原文地址:https://www.cnblogs.com/xunhanliu/p/13268591.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!