2015-11-03 66 views

回答

1

當你提出要求,你發現它的回調方法,回調應該是這樣的:

def parse_method(self, response): 

那裏你可以檢查響應頭與response.headers

4

要展開什麼eLRuLL寫道: 。

ResponseRequest對象將通過.headers屬性提供其標題。

這兩個對象的標題都通過Downloader和引擎之間的中間件進行修改(請參閱Scrapy Architecture)。如果您創建了一個新的對象,它將不會有任何標題,直到它通過指定它們的中間件。

要查看請求對象,因爲它將被髮送出去,所以您需要創建一箇中間件,使它比其他任何頭部更改的中間件更接近下載器,並在此時檢查request.headers屬性。

或者,您可以通過查看response.request.headers來查看返回Response到Spider的請求的標題。這可能不是您發送的Request對象,但是返回的對象(例如,重定向/重試會導致最初調度的對象Request不同於response.request中的對象Request)。當然,這需要一個Response對象返回給蜘蛛,所以它不會對任何沒有生成響應的Request(例如DNS查找錯誤)或任何被中間件忽略或丟棄的Response (例如,HTTP狀態400)。