“动态”覆盖Scrapy输出格式
发布时间:2020-12-20 13:45:35 所属栏目:Python 来源:网络整理
导读:我想在代码中覆盖spider的输出格式.我无法修改设置;我无法更改命令行.我想在__init__方法中做到这一点. 理想情况下,即使像-o /tmp/1.csv这样的东西传递给蜘蛛,新输出格式也应该有效.但如果不可能,那就通过它. 我怎样才能做到这一点? 谢谢. 解决方法 因此,您
我想在代码中覆盖spider的输出格式.我无法修改设置;我无法更改命令行.我想在__init__方法中做到这一点.
理想情况下,即使像-o /tmp/1.csv这样的东西传递给蜘蛛,新输出格式也应该有效.但如果不可能,那就通过它. 我怎样才能做到这一点? 谢谢. 解决方法
因此,您可以在蜘蛛中放置一个自定义属性,设置如何为此蜘蛛处理数据,并创建一个尊重该配置的
Scrapy item pipeline.
你的蜘蛛代码看起来像: from scrapy import Spider class MySpider(Spider): def __init__(self,*args,**kwargs): super(MySpider,self).__init(*args,**kwargs) self.data_destination = self._get_data_destination() def _get_data_destination(self): # return your dynamically discovered data destination settings here 而你的item pipeline将是这样的: class MySuperDuperPipeline(object): def process_item(self,item,spider): data_destination = getattr(spider,'data_destination') # code to handle item conforming to data destination here... return item (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |