While循环中的ReactorNotRestartable错误出现刮擦

我得到的twisted.internet.error.ReactorNotRestartable错误,当我执行下面的代码:

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()

if result:

break

sleep(3)

第一次起作用,然后出现错误。我process每次都创建变量,这是什么问题?

回答:

默认情况下,CrawlerProcess.start()将停止在所有爬虫完成它创建的扭曲反应器。

process.start(stop_after_crawl=False)如果process在每个迭代中创建,则应调用。

另一种选择是自己处理并使用Twisted反应堆CrawlerRunner。该文档有一个这样做的例子。

以上是 While循环中的ReactorNotRestartable错误出现刮擦 的全部内容, 来源链接: utcz.com/qa/428422.html

回到顶部