scrapy如何针对不同的spider指定不同的参数
来源:互联网 发布:最强围棋软件 编辑:程序博客网 时间:2024/05/30 02:26
scrapy中如何指定spider不用的参数,特别是item_pipeline?
这里没有答案。
首先,在scrapy中不直接支持这种方式
一般都是通过pipeline的process_item中区分是否当前的pipeline作用到这个item上,这里有一个链接可以参考,
https://groups.google.com/forum/?fromgroups=#!topic/scrapy-users/msKQ7UaYh_E
这里有两种实现方式
def process_item(self, item, spider): if spider.name not in ['myspider1', 'myspider2', 'myspider3']: return item
或者
class SomeSpider(CrawlSpider): pipelines = ['first']
class FirstPipeline(object): def process_item(self, item, spider): if 'first' not in getattr(spider, 'pipelines', []): return item
有没有办法实现不同的参数呢
我想应该有办法,我们知道在运行command的时候可以指定参数,如scrapy crawl somespider -s LOG_FILE='path‘,尝试了一下,发现item_pipeline也可以,比如-s ITEM_PIPELINES='some.pipeline.name' (不知道怎么加list)
那么这里可以,也应该有想类似的途径来实现。接下来看看源代码吧
opts, args = parser.parse_args(args=argv[1:]) _run_print_help(parser, _run_command, cmd, args, opts) spider = self.crawler.spiders.create(spname, **opts.spargs)这里有一些代码片段(摘自scrapy的crawl.py,cmdline.py, sha1 为27583922a702e808d544534bdb920e31eb6a9e9c)可以看出解析命令行参数,并使用manager(就是spiders)来生成一个spider。
尝试了一下修改,但是有些错误,先记录一下,真的需要再研究
- scrapy如何针对不同的spider指定不同的参数
- scrapy如何针对不同的spider指定不同的参数
- 为spider指定不同的pipline
- scrapy 在不同的Request之间传递参数的办法
- scrapy 在不同的Request之间传递参数的办法
- 用于datagrid模板针对不同的数据类型的参数归总
- scrapy的spider
- 向scrapy中的spider传递参数的几种方法
- 在一个应用中,如何针对不同的外部客户系统,使用不同的数字证书?
- Scrapy 的 Spider 的编写
- WPS如何在同一篇文档针对不同章节设置不同的页眉页脚
- Mysql5.5与Mysql5.1指定选项参数的不同
- Mysql5.1与Mysql5.5指定选项参数的不同
- [Java] hashCode() 针对不同的对象返回不同的整数
- 针对不同的客户采取不同的沟通方式
- 不同的系统针对不同的换行符号识别
- 针对不同的屏幕尺寸生成不同的大小
- 针对不同的应用场景选用不同的语言
- shell编程的例子(简单的CD管理代码)
- hdu 1579 Function Run Fun
- Camera raw data directly to image using CxImage
- hdu 1010 Tempter of the Bone
- 需求说明书四要素
- scrapy如何针对不同的spider指定不同的参数
- 实现CAS与AD在Linux下集成(修订)
- rqnoj-3
- zencart后台汉化教程
- WindowManager.LayoutParams(上)
- 问题四十三:f=1-i/2!+1/3!-...+1/9! (for循环)
- 批量更改文件名称并且标号
- linux中命令别名的设定指令alias和unalias
- 在HTML5中如何提高网站前端性能