Scrapy在每隔一行的csv文件中打印数据

时间:2017-08-04 14:46:51

标签: python python-3.x csv web-scraping scrapy

我在python scrapy中编写了一个脚本,用于解析黄页中的一些项目。当我执行我的脚本时,它会完美地解析所有项目。但是,每当我在csv文件中相应地写入这些被删除的数据时,我会遇到问题。当我打开填充了数据的csv文件时,我看到数据已经打印在其他所有行中。如何摆脱空白行?我正在粘贴脚本信息以供您考虑。

“items.py”包括:

from scrapy.item import Item, Field
class RealypItem(Item):
    Name = Field()
    Address = Field()
    Phone = Field()

“yp.py”又名蜘蛛包含:

from scrapy.spider import BaseSpider

class MySpider(BaseSpider):
     name = "YellowPage"
     allowed_domains = ["yellowpages.com"]
     start_urls = ["https://www.yellowpages.com/search?search_terms=Coffee%20Shops&geo_location_terms=Los%20Angeles%2C%20CA&page=2"]

     def parse(self, response):
        page = response.xpath('//div[@class="info"]')
        for titles in page:
            Title = titles.xpath('.//span[@itemprop="name"]/text()').extract()
            Adr = titles.xpath('.//span[@itemprop="streetAddress" and @class="street-address"]/text()').extract()
            Tel = titles.xpath('.//div[@itemprop="telephone" and @class="phones phone primary"]/text()').extract()
            yield{'Name':Title,'Address':Adr,'Phone':Tel}

我用来运行脚本的命令:

scrapy crawl YellowPage -o items.csv -t csv

以下是csv文件中填充数据的部分图片:

enter image description here

1 个答案:

答案 0 :(得分:0)

一切似乎都没问题,只是用于显示csv的软件会被你的Windows换行符弄糊涂。

通常,换行符是\n,而在Windows上是\n\r。知道操作系统的Scrapy会添加Windows换行符而不是通用换行符。您的csv程序需要通用换行符,而是获取Windows换行符。

此处最简单的解决方法是手动删除文件中的\r个字符。