自定制命令
不在终端运行爬虫方法:
不在终端运行爬虫,可以在最外层项目的下创建start.py文件
导入如下配置:直接运行就可以了
# import sys
# from scrapy.cmdline import execute
#
#
# if __name__ == '__main__':
# execute(['scrapy','crawl','baidu','--nolog'])##这里相当于是scrapy crawl baidu --nolog
#
# '''
# 放在创建项目下的第一层目录下执行
#
# '''
自定制scrapy命令方法:
在settings里面的配置:
COMMANDS_MODULE='scrapyproject1.commands'
首先在你要启动的项目下面(spider的同级目录)创建一个commands文件(名字可以自己修改,但是前提settings配置信息也要修改,佛否则找不到)
然后在commands下面创建crawl_allspiders.py(名字可以修改,运行命令就是--scrapy 名字--,例如:scrapy crawl_spiders)
配置信息如下:
from scrapy.commands import ScrapyCommand
from scrapy.utils.project import get_project_settings
class Command(ScrapyCommand):
requires_project = True
def syntax(self):
return '[option]'##该命令的option
def short_desc(self):##对该命令的描述
return 'run'
def run(self, args, opts):
spider_list=self.crawler_process.spiders.list()
print(spider_list)##拿到当前下的所有爬虫
print(opts)
print(args)
'''['baidu', 'baidu1', 'baidu2']'''
for name in spider_list:
self.crawler_process.crawl(name,**opts.__dict__)
self.crawler_process.start()
在终端输入scrapy --help就可以查看到自己自定制的命令了
scrapy crawlall就可以执行全部的爬虫了