Файл scrapy csv имеет равномерные пустые строки?

вот паука:

import scrapy from danmurphys.items import DanmurphysItem class MySpider(scrapy.Spider): name = 'danmurphys' allowed_domains = ['danmurphys.com.au'] start_urls = ['https://www.danmurphys.com.au/dm/navigation/navigation_results_gallery.jsp?params=fh_location%3D%2F%2Fcatalog01%2Fen_AU%2Fcategories%3C%7Bcatalog01_2534374302084767_2534374302027742%7D%26fh_view_size%3D120%26fh_sort%3D-sales_value_30_days%26fh_modification%3D&resetnav=false&storeExclusivePage=false'] def parse(self, response): urls = response.xpath('//h2/a/@href').extract() for url in urls: request = scrapy.Request(url , callback=self.parse_page) yield request def parse_page(self , response): item = DanmurphysItem() item['brand'] = response.xpath('//span[@itemprop="brand"]/text()').extract_first().strip() item['name'] = response.xpath('//span[@itemprop="name"]/text()').extract_first().strip() item['url'] = response.url return item 

и вот пункты:

 import scrapy class DanmurphysItem(scrapy.Item): brand = scrapy.Field() name = scrapy.Field() url = scrapy.Field() 

когда я запускаю паука с помощью этой команды:

 scrapy crawl danmurphys -o output.csv 

вывод выглядит следующим образом: введите описание изображения здесь

3 Solutions collect form web for “Файл scrapy csv имеет равномерные пустые строки?”

Чтобы исправить это в Scrapy 1.3, вы можете исправить его, добавив параметр newline='' в параметр io.TextIOWrapper в методе __init__ класса scrapy.exporters в scrapy.exporters .

Этот вывод показывает типичный симптом дескриптора файла csv, открытый с использованием режима "w" в окнах (возможно, для исправления совместимости с Python 3), но опускания newline .

Хотя это не влияет на системы на базе Linux / Unix, в Windows выдаются 2 символа возврата каретки, вставляя поддельную пустую строку после каждой строки данных.

 with open("output.csv","w") as f: cr = csv.writer(f) 

правильный способ сделать это (python 3):

 with open("output.csv","w",newline='') as f: # python 3 cr = csv.writer(f) 

(в python 2, установка "wb" в режиме открытого режима)

Если файл создается программой, которую вы не можете или не хотите изменять, вы всегда можете отправить файл следующим образом:

 with open("output.csv","rb") as f: with open("output_fix.csv","w") as f2: f2.write(f.read().decode().replace("\r","")) # python 3 f2.write(f.read().replace("\r","")) # python 2 

Спасибо всем особенно (Жан-Франсуа)

проблема заключалась в том, что я установил еще одну версию scrapy 1.1.0, установленную из conda для python 3.5, после того как я добавил python 2.7 в системный путь, исходная scrapy 1.1.2 вернулась к работе по умолчанию. и все работает отлично.

  • Как проверить необоснованное значение с помощью add_xpath в scrapy и установить значение элемента в значение по умолчанию?
  • Scrapy перезаписывает json-файлы вместо добавления файла
  • Не удается следовать ссылке, используя Scrapy
  • Scrapy: Как установить HTTP-прокси для подключения к HTTPS-сайтам (работает HTTP)?
  • Как я могу извлечь только текст в селекторе scrapy в python
  • scrapyd deploy показывает 0 пауков
  • Получение ошибки gcc при установке scrapy
  • Как использовать scrapy для обхода данных из многостраничных объектов, которые реализуются javascript
  • Scrapy: динамически определять элементы
  • Спайдер не нашел ошибку
  • Почему моя очистка ничего не царапает?
  • Python - лучший язык программирования в мире.