2017-04-03 30 views
2

如果url包含「https」,我有一箇中間件會[引發IgnoreRequests()]。Scrapy中間件忽略URL並阻止爬行

class MiddlewareSkipHTTPS(object): 
    def process_response(self, request, response, spider): 
     if (response.url.find("https") > -1): 
      raise IgnoreRequest() 
     else: 
      return response 

enter image description here

有沒有辦法完全防止scrapy從執行GET請求到HTTPS URL?沒有[IgnoreRequests()]和我的代碼片段,我得到了相同的response_bytes/response_count值。我正在查找零值並跳過抓取網址。我不希望scrapy從https頁面抓取/下載所有字節,只需轉到下一個URL。

備註:必須是中間件,不要使用嵌入蜘蛛中的規則。有數百個蜘蛛,想要鞏固邏輯。

回答

0

在設置這樣應該可以正常工作

DOWNLOAD_HANDLERS = { 
    'https': None 
}