返回碼418,scrapy 重新請求


問題情景:

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。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM