2017-10-05 82 views
0

我想做一個自定義的延遲,因爲全局延遲在我的代碼中是低效的。scrapy如何自定義延遲

因爲我不知道我在尋找什麼在這個線程:scrapy is slow (60 pages/min) 我決定最好把它作爲一個新的問題。

基本上我有:

amazon request 
API request 
API request 

如果我使用DOWNLOAD_DELAY = 1 它就像有:

amazon request 
delay(1) 
API request 
delay(1) 
API request 
delay(1) 

當我真正只需要:

amazon request 
API request 
delay(1) 
API request 
delay(1) 

我怎麼能實現延時?我不認爲scrapy有這個功能。

+0

檢查[這](https://github.com/scrapy/scrapy/pull/2897)出來,可能會給未來的支持。 –

回答

0

您可以使用Python中的時間模塊的睡眠功能。 https://docs.python.org/2/library/time.html

它的參數是在幾秒鐘內,使代碼會去:

from time import sleep 
amazon request 
API request 
sleep(1) 
API request 
sleep(1) 
+0

人們說你不應該在scrapy中使用睡眠:https://stackoverflow.com/questions/21171239/scrapy-is-it-possible-to-pause-scrapy-and-resume-after-x-minutes「Scrapy是一個基於扭曲的Python框架,因此,不要在其中使用time.sleep或pause.until,而應使用Twisted的Deferred()。「 – daniel