如何使用Scrapy将项目的字段名称保存在一个文件中?

时间:2014-12-27 15:45:52

标签: python csv web-scraping scrapy

在scrapy中,它涉及很多Item的字段名称。

1。料品类(Items.py)

class HelloItem(scrapy.Item):
   Name = scrapy.Field()
   Address = scrapy.Field()
   ...

2。蜘蛛类(spider.py)

class HelloSpider(scrapy.Spider):

    def parse(self, response):
       item = HelloItem()
       item["Name"] = ...
       item["Address'] = ...
       ...

第3。 settings.py

EXPORT_FIELDS = ["Name", "Address", ...]

我在EXPORT_FIELDS中定义了settings.py设置,用于定义自定义CSV项管道的字段排序。 CSV管道代码与this类似,但self.exporter.fields_to_export加载了settings.getlist("EXPORT_FIELDS")


你可以看到我有三个地方来定义字段名称(名称,地址等)。如果有一天我必须重命名一些字段名称,我必须在这三个文件中更改它们。

那么有没有办法将Item的字段名称定义统一在一个文件中? (或者两个文件也没关系,越小越好)

1 个答案:

答案 0 :(得分:0)

完全不能使用所有项目,而是生成字典。这样,您根本就不需要items.py

但是,随着项目的发展,建议定义一个Item子类,而您提到的重复是小恶魔

由于定义了一个项目,当您尝试在其中一个蜘蛛中刮出带有错字的项目字段时,您会收到一条错误消息。

项目类还允许您使用item loaders