scrapy——解決302重定向


 

在爬蟲多次請求時,有些網站會出現反爬蟲措施:將請求鏈接重定向到一個提示404的鏈接或者驗證碼鏈接等阻止爬蟲的進行,如下為解決方案:

def start_requests(self):
        for i in self.start_urls:
            yield Request(i, meta={
                'dont_redirect': True,
                'handle_httpstatus_list': [302]
            }, callback=self.parse) 

# 'dont_redirect': True是禁止重定向
# Request.meta 中的 handle_httpstatus_list 鍵可以用來指定每個request所允許的response code。

 

此外:

根據 HTTP標准 ,返回值為200-300之間的值為成功的resonse。

如果想處理在這個范圍之外的response,可以通過 spider的 handle_httpstatus_list 屬性或HTTPERROR_ALLOWED_CODES 設置來指定spider能處理的response返回值。

例如,如果想要處理返回值為404的response可以這么做:

class MySpider(CrawlSpider):
  handle_httpstatus_list = [404]

  

 


免責聲明!

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



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