时间:2021-05-22
Scrapy批量运行爬虫文件的两种方法:
1、使用CrawProcess实现
https://doc.scrapy.org/en/latest/topics/practices.html
2、修改craw源码+自定义命令的方式实现
(1)我们打开scrapy.commands.crawl.py文件可以看到:
def run(self, args, opts): if len(args) < 1: raise UsageError() elif len(args) > 1: raise UsageError("running 'scrapy crawl' with more than one spider is no longer supported") spname = args[0] self.crawler_process.crawl(spname, **opts.spargs) self.crawler_process.start()这是crawl.py文件中的run()方法,在此可以指定运行哪个爬虫,要运行所有的爬虫,则需要更改这个方法。
run()方法中通过crawler_process.crawl(spname, **opts.spargs)实现了爬虫文件的运行,spname代表爬虫名。要运行多个爬虫文件,首先要获取所有的爬虫文件,可以通过crawler_process.spider_loader.list()实现。
(2)实现过程:
a、在spider目录的同级目录下创建存放源代码的文件夹mycmd,并在该目录下创建文件mycrawl.py;
b、将crawl.py中的代码复制到mycrawl.py文件中,然后进行修改:
#修改后的run() 方法 def run(self, args, opts): #获取爬虫列表 spd_loader_list = self.crawler_process.spider_loader.list() #遍历各爬虫 for spname in spd_loader_list or args: self.crawler_process.crawl(spname, **opts.spargs) print("此时启动的爬虫:"+spname) self.crawler_process.start()同时可以修改:
def short_desc(self): return "Run all spider"c、在mycmd文件夹下添加一个初始化文件__init__.py,在项目配置文件(setting.py)中添加格式为“COMMANDS_MODULES='项目核心目录.自定义命令源码目录'”的配置;
例如:COMMANDS_MODULE = 'firstpjt.mycmd'
随后通过命令“scrapy -h”,可以查看到我们添加的命令mycrawl
这样,我们就可以同时启动多个爬虫文件了,使用命令:
scrapy mycrawl --nolog到此这篇关于Scrapy爬虫文件批量运行的实现的文章就介绍到这了,更多相关Scrapy 批量运行内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了C#实现的文件批量重命名功能。分享给大家供大家参考,具体如下:usingSystem;usingSystem.Collections.Generi
今天小编给大家详细的讲解一下Scrapy爬虫框架,希望对大家的学习有帮助。1、Scrapy爬虫框架Scrapy是一个使用Python编程语言编写的爬虫框架,任何
爬虫真是一件有意思的事儿啊,之前写过爬虫,用的是urllib2、BeautifulSoup实现简单爬虫,scrapy也有实现过。最近想更好的学习爬虫,那么就
本文实例为大家分享了python实现文件批量重命名的具体代码,供大家参考,具体内容如下代码:#-*-coding:utf-8-*-importosclassIm
项目需要程序能够放在超算中心定时运行,于是针对scrapy写了一个定时爬虫的程序main.py,直接放在scrapy的存储代码的目录中就能设定时间定时多次执行。