我得到的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
。该文档有一个这样做的例子。
问题内容: 因此,在JS工作了一段时间之后,我将回到Python的基础知识。我只是有些出乎我意料的事情。 我有以下代码: 然而,当我运行该脚本,或者输入或脚本只是不断循环和不来循环出来。 我很迷惑。 问题答案: 那是因为您的第二个条件只是一个string ,这始终是正确的。您需要添加到第二个条件:
在下面的代码中,我试图提示用户输入一个数字,如果它小于1,则要求输入另一个正数。 在输入正数之前,它似乎一直在工作,但在给出正数后,程序将打印最终的错误消息。 输入正数后,如何阻止打印此错误消息?
我在循环中输入name和num时出错,
问题内容: 在下面的代码中,我希望循环在+ + =时立即退出。但是,使用语句进行测试表明它一直持续到循环完成为止。我尝试过,然后在语句集中进行设置,但这会导致无限循环。我认为使用然后设置可能有效,但也可以一直运行到循环结束为止。什么是最优雅,最快的退出方式?谢谢。 问题答案: 该循环将只匹配条件时,当控制返回到它,即循环完全执行。因此,这就是即使满足条件也不会立即退出程序的原因。 但是,如果条件没
我需要对while或do循环进行编码,以确定用户输入的数字是否在特定范围内(30
只要给定条件为真,Perl编程语言中的while循环语句就会重复执行目标语句。 语法 (Syntax) Perl编程语言中while循环的语法是 - while(condition) { statement(s); } 这里的statement(s)可以是单个陈述或一个陈述块。 condition可以是任何表达。 当条件为真时,循环迭代。 当条件变为假时,程序控制将立即传递到循环之后的行。