python 运行 多个spider

原创 赤水  2017年3月21日 17:48 阅读 6 次
默认情况下,当您执行 scrapy crawl 时,Scrapy每个进程默认运行一个spider。 当然,Scrapy通过 内部(internal)API 也支持单进程多个spider。
下面以 mytest,mytest1 作为例子来说明如何同时运行多个spider:
from scrapy.crawler import CrawlerRunner
from scrapy.utils.project import get_project_settings
from twisted.internet import reactor,defer
runner = CrawlerRunner(get_project_settings())

#运行单个spider
d = runner.crawl('mytest')
d.addBoth(lambda _: reactor.stop())
reactor.run()

#运行多个spider
dfs = set()
for spidername in ['mytest', 'mytest1']:
    d = runner.crawl(spidername)
    dfs.add(d)
defer.DeferredList(dfs).addBoth(lambda _: reactor.stop())
reactor.run()
本文地址: https://blog.lssin.com/readblog/136.html
版权声明:本文为原创文章,版权归  赤水 所有,欢迎分享本文,转载请保留出处!

发表评论


表情