1. 程式人生 > >關於scrapy中request過濾問題

關於scrapy中request過濾問題

問題起因

由於scrapy中有自帶的spidermiddlewares去過濾我們yield進來的request請求,很多時候會導致爬取資料缺失會直接一部分跳過。

常見情景: 比如伯樂的文章 可以發現,最常見的就是spidermiddlewares.offsite過濾,官方文件也說明了:

我收到了 “Filtered offsite request” 訊息。如何修復? 這些訊息(以 DEBUG 所記錄)並不意味著有問題,所以你可以不修復它們。

這些訊息由Offsite Spider中介軟體(Middleware)所丟擲。 該(預設啟用的)中介軟體篩選出了不屬於當前spider的站點請求。

解決問題

在Request方法裡,提供了dont_filter

引數,設定在Request中,並改成True以迴避過濾策略