Python: Scrapy CSV экспортируется неправильно?

Я просто пытаюсь написать csv. Однако у меня есть два отдельных for-statement, поэтому данные из каждого for-statement экспортируются независимо и прерываются. Предложения?

def parse(self, response): hxs = HtmlXPathSelector(response) titles = hxs.select('//td[@class="title"]') subtext = hxs.select('//td[@class="subtext"]') items = [] for title in titles: item = HackernewsItem() item["title"] = title.select("a/text()").extract() item["url"] = title.select("a/@href").extract() items.append(item) for score in subtext: item = HackernewsItem() item["score"] = score.select("span/text()").extract() items.append(item) return items 

Как видно на изображении ниже, второй оператор for-print печатает ниже других, а не «среди других» в качестве заголовка.

CSV изображение прилагается: csv-файл

и github для полного файла: https://github.com/nchlswtsn/scrapy/blob/master/items.csv

2 Solutions collect form web for “Python: Scrapy CSV экспортируется неправильно?”

Ваш порядок экспорта элемента логичен для того, что вы находите в CSV-файле, сначала вы экспортировали все заголовки, а затем все элементы подтекста.
Наверное, вы пытаетесь отменить статьи HN, вот мое предложение:

 def parse(self, response): hxs = HtmlXPathSelector(response) titles = hxs.select('//td[@class="title"]') items = [] for title in titles: item = HackernewsItem() item["title"] = title.select("a/text()").extract() item["url"] = title.select("a/@href").extract() item["score"] = title.select('../td[@class="subtext"]/span/text()').extract() items.append(item) return items 

Я не тестировал его, но это даст вам представление.

Модуль CSV от Python 2.7 не поддерживает Unicode, поэтому вместо него предлагается использовать unicodecsv .

 $pip install unicodecsv 

Unicodecsv является заменой для модуля csv Python 2, который поддерживает строки unicode без хлопот.

И затем используйте это вместо import csv

 import unicodecsv as csv 
  • как я могу использовать wget для загрузки файлов с помощью scrapy
  • Вызов Scrapy из другого файла без потоковой передачи
  • Scrapy xpath между двумя ключевыми словами
  • Как установить Scrapy на Unbuntu 16.04?
  • Scrapy Not Returning Additonal Info из скребковой ссылки в элементе через запрос обратного вызова
  • Установка модуля Python с помощью pip
  • получение Запрещено robots.txt: scrapy
  • Почему XMLFeedSpider не выполняет итерацию через назначенные узлы?
  • Python - лучший язык программирования в мире.