我有一個scrapy蜘蛛,但它有時不返回請求。Scrapy:如何調試scrapy丟失請求
我發現通過在產生請求之前和獲得響應之後添加日誌消息。
蜘蛛已遍歷頁面和解析每個頁面上的項目報廢鏈接。
下面是部分代碼
SampleSpider(BaseSpider):
....
def parse_page(self, response):
...
request = Request(target_link, callback=self.parse_item_general)
request.meta['date_updated'] = date_updated
self.log('parse_item_general_send {url}'.format(url=request.url), level=log.INFO)
yield request
def parse_item_general(self, response):
self.log('parse_item_general_recv {url}'.format(url=response.url), level=log.INFO)
sel = Selector(response)
...
我比較每個日誌信息的數量和「parse_item_general_send」比「parse_item_general_recv」
有沒有在最後的統計信息沒有400或500個錯誤,所有的回覆狀態代碼只有200個。看起來請求只是消失。
我還添加了這些參數,以儘量減少可能出現的錯誤:
CONCURRENT_REQUESTS_PER_DOMAIN = 1
DOWNLOAD_DELAY = 0.8
由於扭曲的異步性,我不知道如何調試這個錯誤。 我發現一個類似的問題:Python Scrapy not always downloading data from website,卻一直沒有任何迴應
嘗試禁用異地中間件以查看會發生什麼。 – Rolando
我試過了(根據[這個例子](http://doc.scrapy.org/en/latest/topics/spider-middleware.html)),nothig已經改變了,有些請求消失了,從2到5大約120個請求總是消失 –
您可以提供一個重現此問題的最小示例嗎?否則將很難指出有什麼問題,因爲這不是一個常見問題 – Rolando