scrapy有很多内置命令,
例如:
scrapy list:列出当前所有爬虫
scrapy version:查看scrapy版本
那么有没有遇到没有适合的命令呢,比如说你想查看所有爬虫以及对应的中文名称(毕竟都是中国人,英文不好的话就很难受),我也是在项目上遇到这个问题,所以就研究了下,做出了这个命令
我起名为names
执行命令:
scrapy names:列出所有的爬虫中英文名称
像这样的结果:
common_detail:通用详情爬虫
news_paper:新闻爬虫
那么这是怎么实现的呢?
首先创建一个names.py
# -*- coding=utf-8 -*-
from scrapy.commands import ScrapyCommand
class Command(ScrapyCommand):
requires_project = True
def short_desc(self):
return '列出所有爬虫及其名称'
def run(self, args, opts):
spider_info = self.crawler_process.spiders._spiders
for key, spider in spider_info.items():
print("%s:%s" % (key, spider.zh_name))
想要使用这个命令的话,需要在scrapy的settings.py里面设置
COMMANDS_MODULE = '项目名.names'
这样就可以使用了,好了小伙伴们可以试试了