Scrapy爬虫框架下执行爬虫的方法

Posted 木楉。

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scrapy爬虫框架下执行爬虫的方法相关的知识,希望对你有一定的参考价值。

  在使用Scrapy框架进行爬虫时,执行爬虫文件的方法是 scrapy crawl xxx ,其中 xxx 是爬虫文件名。

  但是,当我们在建立了多个文件时,使用上面的命令时会比较繁琐麻烦,我们就可以使用下述方法同时完成爬虫文件的执行。

  第一种,在scrapy框架下建立一个运行文件,如 run.py ,在文件中建立一个列表,列表为爬虫的执行命令,最后通过循环执行 execute() 函数完成执行。执行时使用 python run.py 命令即可。如下面的代码所示

from scrapy.cmdline import execute
spiders = [
    \'scrapy crawl liepin\',
    \'scrapy crawl lagou\'
]

if __name__ == \'__main__\':
    for i in spiders:
        execute(i.split())

  第二种,我们还可以使用自定义项目命令 COMMANDS_MODULE 添加自己的命令完成执行。

  在爬虫文件所属的文件夹同级目录下创建任意目录,如command,在文件夹下创建命令文件,如crawlall.py,此文件的名称就是我们自定义的命令。例子代码如下

from scrapy.commands import ScrapyCommand
from scrapy.utils.project import get_project_settings

class Command(ScrapyCommand):
	requires_project = True

	def run(self,args,opts):
		spiders_list = self.crawler_process.spiders.list()
		for name in spiders_list:
			self.crawler_process.crawl(name,**opts.__dict__)

		self.crawler_process.start()

  在scrapy项目的配置文件 settings.py 中添加  COMMANDS_MODULE = \'项目名称.目录名称\' 。至此命令添加完成,最后执行命令  scrapy xxx 进行执行(此处的xxx就是上面建立的文件名,如 scrapy crawlall )。

  参考:http://www.cnblogs.com/lei0213/p/7900340.html

以上是关于Scrapy爬虫框架下执行爬虫的方法的主要内容,如果未能解决你的问题,请参考以下文章

scrapy主动退出爬虫的代码片段(python3)

[爬虫框架scrapy]爬虫文件的创建

[爬虫框架scrapy]爬虫文件的创建

2017.07.26 Python网络爬虫之Scrapy爬虫框架

spider-通过scrapyd网页管理工具执行scrapy框架

手把手教你如何新建scrapy爬虫框架的第一个项目(下)