我有两个scrappy蜘蛛在两个不同的脚本
Spiders
Spider1.py
Spider2.py
Spider中的代码示例如下:
from scrapy.crawler import CrawlerRunner
from twisted.internet import reactor
class Spider(scrapy.spider):
# some code
runner = CrawlerRunner(
settings={'FEEDS':
{'../input/next.csv': {'format':
'csv'}}})
runner.crawl(Spider)
d = runner.join()
d.addBoth(lambda _: reactor.stop())
reactor.run()
我从一个单独的脚本运行两个spider,代码如下:
import runpy as r
def run_webscraper():
r.run_path(path_name='Spider1.py')
r.run_path(path_name='Spider2.py')
return
if __name__ == '__main__':
run_webscrapper()
当我尝试运行spider时,Spider1运行并将结果保存在相应的csv文件中,但当执行spider2时,我得到以下错误:
twisted.internet.error.ReactorNotRestartable
对于如何修复代码以便两个spider运行并将结果保存在单独的文件(spider1.csv,spider2.csv)中,有什么想法吗?
这真的可能吗?
1条答案
按热度按时间dba5bblo1#
我相信你可以通过在每个蜘蛛中创建一个这样的cutom设置来做到这一点:
蜘蛛1:
蜘蛛2: