博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
scrapy crawl 源码修改 爬虫多开
阅读量:6540 次
发布时间:2019-06-24

本文共 2621 字,大约阅读时间需要 8 分钟。

import osfrom scrapy.commands import ScrapyCommandfrom scrapy.utils.conf import arglist_to_dictfrom scrapy.utils.python import without_none_valuesfrom scrapy.exceptions import UsageErrorclass Command(ScrapyCommand):    requires_project = True    def syntax(self):        return "[options] 
"  # 这里修改一点 def short_desc(self): return "Run all spider" def add_options(self, parser): ScrapyCommand.add_options(self, parser) parser.add_option("-a", dest="spargs", action="append", default=[], metavar="NAME=VALUE", help="set spider argument (may be repeated)") parser.add_option("-o", "--output", metavar="FILE", help="dump scraped items into FILE (use - for stdout)") parser.add_option("-t", "--output-format", metavar="FORMAT", help="format to use for dumping items with -o") def process_options(self, args, opts): ScrapyCommand.process_options(self, args, opts) try: opts.spargs = arglist_to_dict(opts.spargs) except ValueError: raise UsageError("Invalid -a value, use -a NAME=VALUE", print_help=False) if opts.output: if opts.output == '-': self.settings.set('FEED_URI', 'stdout:', priority='cmdline') else: self.settings.set('FEED_URI', opts.output, priority='cmdline') feed_exporters = without_none_values( self.settings.getwithbase('FEED_EXPORTERS')) valid_output_formats = feed_exporters.keys() if not opts.output_format: opts.output_format = os.path.splitext(opts.output)[1].replace(".", "") if opts.output_format not in valid_output_formats: raise UsageError("Unrecognized output format '%s', set one" " using the '-t' switch or as a file extension" " from the supported list %s" % (opts.output_format, tuple(valid_output_formats))) self.settings.set('FEED_FORMAT', opts.output_format, priority='cmdline') #关键是这里 def run(self, args, opts): # 获取爬虫列表 spd_loder_list = self.crawler_process.spider_loader.list() # 遍历各爬虫 for spname in spd_loder_list or args: self.crawler_process.crawl(spname,**opts.spargs) print('此时启动的爬虫为:'+spname) self.crawler_process.start()

放入项目目录,配置setting.py

COMMANDS_MODULE = 'mypjt.mycommand' scrapy mycommand --nolog

转载于:https://www.cnblogs.com/Erick-L/p/6835755.html

你可能感兴趣的文章
【转载】实用VC++6.0插件
查看>>
Oracle 行转列(不固定行数的行转列,动态)(转)
查看>>
three20 network
查看>>
用备份控制文件做不完全恢复下的完全恢复(全备<老>--备份控制文件<次新>--新建表空间andy--日志文件<新>)...
查看>>
实验报告
查看>>
GSON工具类
查看>>
taobao
查看>>
Dijkstra算法的C语言程序
查看>>
HDU4706 Children's Day
查看>>
实验五感想
查看>>
简单练习题
查看>>
iOS网络编程笔记——GCDAsyncSocket使用
查看>>
数据库MySQL基本语法思维导图
查看>>
如何用PyQt5写个通讯录
查看>>
git命令总结
查看>>
Django框架中,使用celery实现异步
查看>>
数据结构c语言
查看>>
Map集合
查看>>
Could not load file or assembly 'System.Web.Extensions
查看>>
图的遍历——BFS(队列实现)
查看>>