Scrapy爬虫文件批量运行的实现


Posted in Python onSeptember 30, 2020

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爬虫文件批量运行的实现的文章就介绍到这了,更多相关Scrapy 批量运行内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
在Python的Django框架中实现Hacker News的一些功能
Apr 17 Python
Python实现找出数组中第2大数字的方法示例
Mar 26 Python
通过pykafka接收Kafka消息队列的方法
Dec 27 Python
python执行精确的小数计算方法
Jan 21 Python
python matplotlib实现双Y轴的实例
Feb 12 Python
Python使用字典的嵌套功能详解
Feb 27 Python
Python实现堡垒机模式下远程命令执行操作示例
May 09 Python
Pycharm 文件更改目录后,执行路径未更新的解决方法
Jul 19 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
Oct 12 Python
python2.7使用scapy发送syn实例
May 05 Python
详解tensorflow之过拟合问题实战
Nov 01 Python
python使用openpyxl库读写Excel表格的方法(增删改查操作)
May 02 Python
如何使用scrapy中的ItemLoader提取数据
Sep 30 #Python
python Matplotlib数据可视化(2):详解三大容器对象与常用设置
Sep 30 #Python
python pip如何手动安装二进制包
Sep 30 #Python
python Matplotlib数据可视化(1):简单入门
Sep 30 #Python
详解Python中的编码问题(encoding与decode、str与bytes)
Sep 30 #Python
python 生成器需注意的小问题
Sep 29 #Python
python 两种方法删除空文件夹
Sep 29 #Python
You might like
第十节--抽象方法和抽象类
2006/11/16 PHP
php 购物车的例子
2009/05/04 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
PHP输出图像imagegif、imagejpeg与imagepng函数用法分析
2016/11/14 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
PHP实现生成数据字典功能示例
2018/05/24 PHP
js的event详解。
2006/09/06 Javascript
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
JQuery选择器特辑 详细小结
2012/05/14 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
jQuery实现的Tab滑动选项卡及图片切换(多种效果)小结
2015/09/14 Javascript
JS实现选中当前菜单后高亮显示的导航条效果
2015/10/15 Javascript
Active控件问题小结(附解决办法)
2016/06/09 Javascript
JavaScript使用Range调色及透明度实例
2016/09/25 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
Nodejs + sequelize 实现增删改查操作
2020/11/07 NodeJs
python的tkinter布局之简单的聊天窗口实现方法
2014/09/03 Python
python 根据正则表达式提取指定的内容实例详解
2016/12/04 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
使用Python的turtle模块画国旗
2019/09/24 Python
Europcar澳大利亚官网:全球汽车租赁领域的领导者
2019/03/24 全球购物
医院后勤自我鉴定
2013/10/13 职场文书
旅游专业职业生涯规划范文
2014/01/13 职场文书
写自荐信的注意事项
2014/03/09 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
人力资源职位说明书
2014/07/29 职场文书
2014年最新个人对照检查材料范文
2014/09/25 职场文书
2014年工会工作总结
2014/11/12 职场文书
公司辞职信模板
2015/05/13 职场文书
千手观音观后感
2015/06/03 职场文书
JS中一些高效的魔法运算符总结
2021/05/06 Javascript
Python装饰器的练习题
2021/11/23 Python