在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的字段名称定义统一在一个文件中? (或者两个文件也没关系,越小越好)
答案 0 :(得分:0)
您完全不能使用所有项目,而是生成字典。这样,您根本就不需要items.py
。
但是,随着项目的发展,建议定义一个Item
子类,而您提到的重复是小恶魔。
由于定义了一个项目,当您尝试在其中一个蜘蛛中刮出带有错字的项目字段时,您会收到一条错误消息。
项目类还允许您使用item loaders。