3 回答

TA貢獻1810條經(jīng)驗 獲得超5個贊
默認情況下,CrawlerProcess的.start()將停止在所有爬蟲完成它創(chuàng)建的扭曲反應器。
process.start(stop_after_crawl=False)如果process在每個迭代中創(chuàng)建,則應調(diào)用。
另一個選擇是自己處理并使用Twisted反應堆CrawlerRunner。該文檔有一個這樣做的例子。

TA貢獻1818條經(jīng)驗 獲得超8個贊
我能夠像這樣解決這個問題。process.start()應該只調(diào)用一次。
from time import sleep
from scrapy import signals
from scrapy.crawler import CrawlerProcess
from scrapy.utils.project import get_project_settings
from scrapy.xlib.pydispatch import dispatcher
result = None
def set_result(item):
result = item
while True:
process = CrawlerProcess(get_project_settings())
dispatcher.connect(set_result, signals.item_scraped)
process.crawl('my_spider')
process.start()
添加回答
舉報