Scrapy-爬虫多开技能

来源:互联网 发布:windows域 编辑:程序博客网 时间:2024/06/07 08:21

我们知道,现在运行Scrapy项目中的爬虫文件,需要一个一个的运行,那么是否可以将对应的想运行的爬虫文件批量运行呢?如果可以,又该如何实现呢?
在Scrapy中,如果想批量运行爬虫文件,常见的方式有两种:
1. 利用CrawlerProcess实现
2. 修改crawl源码

CrawlerProcess实现

import scrapyfrom scrapy.crawler import CrawlerProcessfrom spiders.spider1 import Spider1Spiderfrom spiders.spider2 import Spider2Spiderfrom spiders.spider3 import Spider3Spider'''spiders包下三个爬虫文件spider1,spider2,spider3Spider1Spider、Spider2Spider、Spider3Spider分别为三个爬虫文件下三个类'''process = CrawlerProcess()process.crawl(Spider1Spider)process.crawl(Spider2Spider)process.crawl(Spider3Spider)process.start()

修改craw源码

  1. 在GitHub下载crawl源码(地址:https://github.com/scrapy/scrapy/blob/master/scrapy/commands/crawl.py)
  2. 在spiders同级目录下创建文件夹mycrawl(名字可自定义),创建一个python文件mycrawl(名字可自定义)
  3. 将源码先复制到mycrawl文件中,修改源码run方法部分:
def run(self,args,opts):    sp_list = self.crawler_process.spider_loader.list()    # 遍历爬虫    for name in sp_list or args:        self.crawler_process.crawl(name,**opts.spargs)    self.crawler_process.start()
  1. 在mycrawl文件夹中创建init.py文件
  2. 在settings.py中添加:
# xxxx为项目名COMMANDS_MODULE = 'xxxx.mycrawl'
  1. 在终端中进入project目录下,再进入与project同名的目录下,执行命令:
scrapy mycrawl
原创粉丝点击