process = CrawlerProcess(get_project_settings())
process.crawl(*args)
# the script will block here until the crawling is finished
process.start()
が、私はそうのようなweb_crawler(self)
機能、にこのコードを移動したので、::
from twisted.internet import reactor
from scrapy.crawler import CrawlerProcess
def web_crawler(self):
# set up a crawler
process = CrawlerProcess(get_project_settings())
process.crawl(*args)
# the script will block here until the crawling is finished
process.start()
# (...)
return (result1, result2)
などのクラスインスタンス化を使用してメソッドを呼び出すように開始しました。
def __call__(self):
results1 = test.web_crawler()[1]
results2 = test.web_crawler()[0]
とランニング:
test()
私は、次のエラーを取得しています:
Traceback (most recent call last):
File "test.py", line 573, in <module>
print (test())
File "test.py", line 530, in __call__
artists = test.web_crawler()
File "test.py", line 438, in web_crawler
process.start()
File "/Library/Python/2.7/site-packages/scrapy/crawler.py", line 280, in start
reactor.run(installSignalHandlers=False) # blocking call
File "/Library/Python/2.7/site-packages/twisted/internet/base.py", line 1194, in run
self.startRunning(installSignalHandlers=installSignalHandlers)
File "/Library/Python/2.7/site-packages/twisted/internet/base.py", line 1174, in startRunning
ReactorBase.startRunning(self)
File "/Library/Python/2.7/site-packages/twisted/internet/base.py", line 684, in startRunning
raise error.ReactorNotRestartable()
twisted.internet.error.ReactorNotRestartable
何が間違っていますか?
スクリプトごとに2回 "web_crawler()"を実行していますか?ねじれた反応器を2回以上始動することはできません。 – Rejected
私は気付いていません。私がやっていることは、クラス関数でクローラ関数を定義し、__call__メソッドでプロセスを実行することです。 'results' = test.web_crawler()のようになります。 –
@Rejected私は質問を編集しました、ありがとう –