Python 3.x 外部Python文件中的多个spider-如何随后运行
有人知道我如何在一个调用Scrapy的Python文件中运行多个spider吗?目前,我的代码正在中断,因为我认为下一个spider正在被阻止,因为第一个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/
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()
如果您确实需要按顺序运行它们,我建议您看看这里: