Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 外部Python文件中的多个spider-如何随后运行_Python 3.x_Scrapy - Fatal编程技术网

Python 3.x 外部Python文件中的多个spider-如何随后运行

Python 3.x 外部Python文件中的多个spider-如何随后运行,python-3.x,scrapy,Python 3.x,Scrapy,有人知道我如何在一个调用Scrapy的Python文件中运行多个spider吗?目前,我的代码正在中断,因为我认为下一个spider正在被阻止,因为第一个spider正在运行 if __name__ == "__main__": c = CrawlerProcess({ 'USER_AGENT': 'Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/

有人知道我如何在一个调用Scrapy的Python文件中运行多个spider吗?目前,我的代码正在中断,因为我认为下一个spider正在被阻止,因为第一个spider正在运行

if __name__ == "__main__":
    c = CrawlerProcess({
        'USER_AGENT': 'Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
        'FEED_FORMAT': 'json',
        'FEED_URI': 'spider_one.json'
    })
    c.crawl(SpiderOneSpider)
    c.start() #the script will block here until the crawling is finished according to the documentation

    c = CrawlerProcess({
        'USER_AGENT': 'Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
        'FEED_FORMAT': 'json',
        'FEED_URI': 'spider_two.json'
    })
    c.crawl(SpiderTwoSpider)
    c.start()
还不确定是否有更简洁的方法来编写此代码? 我基本上是使用SpiderTwo来完成与SpiderOne相同的工作,但只是导出不同的JSON文件。

删除中间的
start()
行,一旦爬虫程序启动,您将无法向爬网添加更多的爬虫

if __name__ == "__main__":
    c = CrawlerProcess({
        'USER_AGENT': 'Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
        'FEED_FORMAT': 'json',
        'FEED_URI': 'spider_one.json'
    })
    c.crawl(SpiderOneSpider)

    c = CrawlerProcess({
        'USER_AGENT': 'Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
        'FEED_FORMAT': 'json',
        'FEED_URI': 'spider_two.json'
    })
    c.crawl(SpiderTwoSpider)
    c.start()
如果您确实需要按顺序运行它们,我建议您看看这里: