【问题标题】:Scrapy csv export without blank rows没有空白行的 Scrapy csv 导出
【发布时间】:2019-02-06 10:35:22
【问题描述】:

我有以下scrapy代码:

from scrapy.spiders import CrawlSpider, Rule
from scrapy.linkextractors import LinkExtractor

class AliSpider(CrawlSpider):
    name = "alibot"
    allowed_domains = ["alibaba.com"]
    start_urls = {
        'http://www.alibaba.com/catalog/power-banks_cid100009648',
    }

    rules = (Rule(LinkExtractor(allow=('product-detail')), callback = 'parse_page', follow = True),)

    def parse_page(self,response):
        yield {'URL':response.url}

当我运行scrapy crawl alibot -o data.csv时,它会将网址保存在 csv 文件中。 我不想要两个值之间的空白行。我可以用 excel 删除它,但是当它是大数据时它变得乏味。我不想要两个值之间的空白行,因为其他scrapy代码会导入这个csv文件并从每个链接中提取数据。如果它找到一个空白行,它就会停在那里,这是我不想要的。我怎么做?谢谢。

data.csv::

URL

http://www.alibaba.com/product-detail/mini-portable-qi-wireless-phone-charging_60793204715.html?s=p

http://www.alibaba.com/product-detail/New-Portable-Power-Bank-4000mah-Slim_60445623561.html

http://www.alibaba.com/product-detail/100W-40800mah-portable-power-bank-station_60696475188.html

http://www.alibaba.com/product-detail/Portable-universal-solar-charger-solar-power_60230498369.html

http://www.alibaba.com/product-detail/HE-M19-Hand-Warmer-Power-Bank_60694294192.html

【问题讨论】:

  • 你检查是否不是dos/unix换行的问题?
  • 我该如何检查
  • 使用可以读取普通文件并显示特殊字符的编辑器
  • 您是否尝试过response.url.strip() 以确保数据末尾没有内容?

标签: python csv web-scraping scrapy


【解决方案1】:

好的,这篇文章帮助了我:Can't get rid of blank rows in csv output。 在 setting.py 文件中进行这些更改。

FEED_EXPORTERS = {
    'csv': 'your_project_name.exporters.FixLineCsvItemExporter',
} 

添加将exporters.py 文件粘贴到有__init__ 文件的spider 文件夹中。和 bam,输出文件不包含空白行。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-19
    • 2016-11-12
    • 1970-01-01
    • 2017-09-14
    • 1970-01-01
    • 2019-09-17
    • 1970-01-01
    相关资源
    最近更新 更多