没有空白行的Scrapy csv导出

时间:2018-08-31 11:39:59

标签: python csv web-scraping 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时,它将URL保存在csv文件中。 我不希望两个值之间有空白行。我可以用excel删除它,但是当它是大数据时,它变得很乏味。我不希望两个值之间有空白行,因为其他抓取代码会导入此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

1 个答案:

答案 0 :(得分:2)

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

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

在有__init__文件的蜘蛛文件夹中添加exporters.py文件。和bam,输出文件不包含空白行。