scrapy自定义命令、中间件、自定扩展、去重
一、自定义命令
1.不用在命令窗口 敲命令,通过py文件执行爬虫程序。
(1)在项目配置文件scrapy.cfg同级目录下创建一个start.py 文件。
(2)在start.py 文件中写入以下代码:
from scrapy.cmdline import execute execute(['scrapy','crawl','xiahua',"--nolog"])
2. 自定义命令
- 在spiders同级创建任意目录,如:commands
- 在其中创建 crawlall.py 文件 (此处文件名就是自定义的命令)
crawlall.py文件中:
from scrapy.commands import ScrapyCommand from scrapy.utils.project import get_project_settings class Command(ScrapyCommand): requires_project = True def syntax(self): return '[options]' def short_desc(self): return 'Run all of the spiders' def run(self, args, opts): spider_list=self.crawler_process.spiders.list() for name in spider_list: self.crawler_process.crawl(name,**opts.__dict__) self.crawler_process.start()
- 在settings.py 中添加配置 COMMANDS_MODULE = '项目名称.目录名称'
-
#自定义命令 # COMMANDS_MODULE = '项目名称.目录名称' COMMANDS_MODULE = 'XiaoHua.commands'
- 在项目目录执行命令:scrapy crawlall
有疑问可以加wx:18179641802,进行探讨