While循环中的ReactorNotRestartable错误出现刮擦
我得到的twisted.internet.error.ReactorNotRestartable
错误,当我执行下面的代码:
from time import sleepfrom 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