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 
  • Вопрос по Scrapy SgmlLinkExtractor
  • Итерация по словарю в python и удаление пробела
  • Scrapy throws ImportError: невозможно импортировать имя xmlrpc_client
  • Как добавить элементы из scrapy spider в список?
  • Правильный способ запуска нескольких пауков-пауков
  • как обращаться с перенаправлением 302 в scrapy
  • Динамические веб-сайты Python Scrapy
  • clang: error: неизвестный аргумент: '-mno-fused-madd'
  • Разбивка командной строки Python (для «scrapy»)
  • Использование Tor-прокси с помощью scrapy
  • Scrapy - не сканирует
  •  
    Interesting Posts for Van-Lav

    Почему random () * random () отличается от random () ** 2?

    Итерация бросает строки DataFrame и значение параметра в Spark

    Неопределенное глобальное выражение в генераторе списков с использованием python3 работает с python2, какие изменения необходимы?

    Служить проекту Django в локальной сети WiFi

    sqlalchemy: alembic bulk insert failed: объект 'str' не имеет атрибута '_autoincrement_column'

    Понимание * x, = lst

    Как рассчитать угол между линией и горизонтальной осью?

    pylint не распознает часть стандартной библиотеки

    Scrapy: restrict_css с плохим отформатированным HTML

    Django сменить пароль, super (type, obj): obj должен быть экземпляром или подтипом типа

    AttributeError: объект time.struct_time не имеет атрибута 'toordinal'

    Как сохранить статистику tshark в переменных

    Реализация асинхронного итератора

    Как преобразовать список longs в строку, разделенную запятой, в python

    Инструмент для определения того, какая минимальная версия Python требуется?

    Python - лучший язык программирования в мире.