У меня есть паук-скрап, который собирает детали с сайта. Это хорошо работает для фиксированных полей Item. Он также извлекает поля динамического c с веб-сайта, но не добавляет все извлеченные поля динамического c в выходной файл CSV.
Для экспорта записей в CSV я использую CsvItemExporter
.
Найти класс Below Item для полей Dynami c
class MortgageInfoItem(scrapy.Item):
def __setitem__(self, key, value):
if key not in self.fields:
if "date" in key:
self.fields[key] = scrapy.Field(serializer=serialize_date)
else:
self.fields[key] = scrapy.Field(serializer=serialize_text)
self._values[key] = value
Поля могут различаться для каждой записи. Например, первая запись имеет владельца1 и владельца2, следующая запись имеет владельца1, владельца2 и владельца3 следующим образом.
Итак, наконец, мне нужен CSV-файл, содержащий всю информацию о владельце. (например, владелец1, владелец2, владелец3, ...)
Найдите приведенный ниже класс для экспортера csv
class MultiCSVItemPipeline(object):
CSVDir = 'output' + settings.DIRECTORY
file_name = "MortGage_info"
max_columns = 0
def __init__(self):
dispatcher.connect(self.spider_opened, signal=signals.spider_opened)
dispatcher.connect(self.spider_closed, signal=signals.spider_closed)
def spider_opened(self, spider):
self.file = open(self.CSVDir + self.file_name + '.csv', 'w+b')
self.exporters = CsvItemExporter(self.file)
self.exporters.start_exporting()
def spider_closed(self, spider):
self.exporters.finish_exporting()
self.file.close()
def process_item(self, item, spider):
self.exporters.export_item(item)
return item
Пожалуйста, помогите мне экспортировать все поля в файл CSV, используя CsvItemExporter
, Заранее спасибо.