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
投稿

猜你喜欢

  • JavaScript 数组方法filter与reduce

    2024-04-29 13:14:38
  • python下setuptools的安装详解及No module named setuptools的解决方法

    2022-12-21 00:56:46
  • 代码讲解Python对Windows服务进行监控

    2023-10-07 10:59:09
  • 解决python给列表里添加字典时被最后一个覆盖的问题

    2022-08-24 17:18:42
  • ASP如何跳出本次进入下一次循环

    2008-10-23 13:46:00
  • SQL Server 2005 安装遇到的错误提示和解决方法

    2024-01-20 13:19:15
  • 自动备份Oracle数据库

    2024-01-20 15:08:14
  • 超详细卸载mysql教程(按照步骤可完全卸载)

    2024-01-25 08:21:00
  • python3.7简单的爬虫实例详解

    2023-06-30 15:55:13
  • python 装饰器的基本使用

    2021-04-01 07:12:50
  • 奇淫技巧之图片切割

    2010-09-21 13:24:00
  • Python绘制地理图表可视化神器pyecharts

    2021-01-22 18:08:58
  • 浅析JSONP技术原理及实现

    2024-05-28 15:41:10
  • 浅谈购物类网站如何保持视觉设计的一致性

    2009-03-30 16:02:00
  • 详解Python定时器Timer的使用及示例

    2021-01-25 23:54:34
  • Python爬虫教程知识点总结

    2023-10-01 15:27:16
  • js实现tab选项卡函数代码

    2024-04-19 10:43:25
  • 用代码帮你了解Python基础(3)

    2021-03-20 07:22:46
  • Python实现Wordcloud生成词云图的示例

    2021-09-06 05:29:15
  • 用ASP对网页进行限制性的访问

    2008-07-03 13:02:00
  • asp之家 网络编程 m.aspxhome.com