栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Scrapy中本地运行所有蜘蛛

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Scrapy中本地运行所有蜘蛛

这是一个不在自定义命令中运行,而是手动运行Reactor并为每个蜘蛛创建新的Crawler的示例:

from twisted.internet import reactorfrom scrapy.crawler import Crawler# scrapy.conf.settings singlton was deprecated last yearfrom scrapy.utils.project import get_project_settingsfrom scrapy import logdef setup_crawler(spider_name):    crawler = Crawler(settings)    crawler.configure()    spider = crawler.spiders.create(spider_name)    crawler.crawl(spider)    crawler.start()log.start()settings = get_project_settings()crawler = Crawler(settings)crawler.configure()for spider_name in crawler.spiders.list():    setup_crawler(spider_name)reactor.run()

您将必须设计一些信号系统,以便在所有信号灯完成后停止反应堆。

编辑:这是您可以在自定义命令中运行多个蜘蛛的方法:

from scrapy.command import ScrapyCommandfrom scrapy.utils.project import get_project_settingsfrom scrapy.crawler import Crawlerclass Command(ScrapyCommand):    requires_project = True    def syntax(self):        return '[options]'    def short_desc(self):        return 'Runs all of the spiders'    def run(self, args, opts):        settings = get_project_settings()        for spider_name in self.crawler.spiders.list(): crawler = Crawler(settings) crawler.configure() spider = crawler.spiders.create(spider_name) crawler.crawl(spider) crawler.start()        self.crawler.start()


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/669010.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号