【发布时间】:2017-09-22 19:03:14
【问题描述】:
我是scrapy的新手,我正在寻找一种方法来序列化我的Scrapy Item,以便能够将属性添加到我的XML输出中,让它看起来像这样:
<field name='example'> i have some data scraped here </field>
例如,我正在尝试寻找一种添加“名称”属性的方法。我知道可以通过覆盖 XmlItemExporter 类中的 export_item() 方法来实现,但到目前为止我还没有运气。到目前为止,我的 XmlExportPipeline 看起来像这样:
from scrapy.exporters import XmlItemExporter
class XmlExportPipeline(object):
def open_spider(self, spider):
self.file = open('%s_products.xml' % spider.name, 'w+b')
self.exporter = XmlItemExporter(self.file, item_element='field', root_element='items')
self.exporter.start_exporting()
def close_spider(self, spider):
self.exporter.finish_exporting()
self.file.close()
def process_item(self, item, spider):
self.exporter.export_item(item)
return item
此外,到目前为止,我的所有数据都是项目的不同字段,但理想情况下,我会将其中一些字段作为其他字段的属性。
【问题讨论】:
标签: python xml scrapy xml-serialization