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

作者:SteveForever 时间:2022-04-25 18:29:57 

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爬虫文件批量运行的实现

来源:https://blog.csdn.net/SteveForever/article/details/81607018

标签:Scrapy,批量运行
0
投稿

猜你喜欢

  • asp在sql server2000中新建帐号和给帐号权限代码

    2008-01-29 13:46:00
  • python脚本实现统计日志文件中的ip访问次数代码分享

    2021-03-17 08:40:08
  • Django实现分页功能

    2023-04-04 11:00:56
  • xmlHTTP技术资料

    2008-01-05 13:39:00
  • js鼠标滑过图片震动特效的方法

    2023-08-23 21:38:50
  • SQL SERVER数据库开发之触发器的应用

    2008-06-23 13:09:00
  • asp如何编写一个小数转换分数的函数?

    2009-11-08 19:01:00
  • python openpyxl使用方法详解

    2021-12-23 14:49:18
  • Oracle SQL中实现indexOf和lastIndexOf功能的思路及代码

    2023-07-14 10:26:52
  • Python设计模式中的结构型适配器模式

    2023-07-19 11:59:54
  • asp函数遍历文件夹代码

    2010-06-21 10:38:00
  • 用伪类:hover实现提示效果

    2008-05-29 12:59:00
  • python基础教程之实现石头剪刀布游戏示例

    2022-02-09 15:41:11
  • 5个css+div导航菜单

    2011-04-29 12:38:00
  • Django中URL视图函数的一些高级概念介绍

    2021-04-14 13:35:21
  • PHP PDOStatement::nextRowset讲解

    2023-06-06 07:18:28
  • Django框架登录加上验证码校验实现验证功能示例

    2023-05-09 10:00:34
  • 在Sublime Editor中配置Python环境的详细教程

    2023-08-14 08:33:26
  • DW MX新功能试用:嵌套模板

    2008-02-03 11:35:00
  • PHP中集成PayPal标准支付的实现方法分享

    2023-09-06 09:11:22
  • asp之家 网络编程 m.aspxhome.com