Scrapy是以廣度優(yōu)先還是深度優(yōu)先的順序爬行?

2021-06-11 15:50 更新

默認(rèn)情況下,Scrapy使用 LIFO 用于存儲掛起請求的隊列,這基本上意味著它會爬入 DFO order .這種訂單在大多數(shù)情況下更方便。

如果你真的想爬進(jìn)去 BFO order ,您可以通過設(shè)置以下設(shè)置來完成此操作:

DEPTH_PRIORITY = 1
SCHEDULER_DISK_QUEUE = 'scrapy.squeues.PickleFifoDiskQueue'
SCHEDULER_MEMORY_QUEUE = 'scrapy.squeues.FifoMemoryQueue'

當(dāng)掛起的請求低于配置的值時 ?CONCURRENT_REQUESTS? , ?CONCURRENT_REQUESTS_PER_DOMAIN? 或 ?CONCURRENT_REQUESTS_PER_IP? ,這些請求同時發(fā)送。因此,前幾個爬行請求很少遵循所需的順序。將這些設(shè)置降低到 1 強(qiáng)制執(zhí)行所需的順序,但它會顯著降低整體爬行速度。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號