自定制命令


不在终端运行爬虫方法:
不在终端运行爬虫,可以在最外层项目的下创建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就可以执行全部的爬虫了

posted @ 2018-11-12 01:56  风不再来  阅读(172)  评论(0编辑  收藏  举报