【发布时间】:2017-08-27 19:15:25
【问题描述】:
我在 python scrapy 中编写了一个非常小的脚本来解析显示在黄页网站多个页面上的姓名、街道和电话号码。当我运行我的脚本时,我发现它运行良好。但是,我遇到的唯一问题是数据在 csv 输出中被抓取的方式。它始终是两行之间的行(行)间隙。我的意思是:数据每隔一行打印一次。看到下面的图片你就会明白我的意思了。如果不是为了scrapy,我可以使用[newline='']。但是,不幸的是,我在这里完全无能为力。我怎样才能摆脱 csv 输出中出现的空白行?提前感谢您查看它。
items.py 包括:
import scrapy
class YellowpageItem(scrapy.Item):
name = scrapy.Field()
street = scrapy.Field()
phone = scrapy.Field()
这是蜘蛛:
import scrapy
class YellowpageSpider(scrapy.Spider):
name = "YellowpageSp"
start_urls = ["https://www.yellowpages.com/search?search_terms=Pizza&geo_location_terms=Los%20Angeles%2C%20CA&page={0}".format(page) for page in range(2,6)]
def parse(self, response):
for titles in response.css('div.info'):
name = titles.css('a.business-name span[itemprop=name]::text').extract_first()
street = titles.css('span.street-address::text').extract_first()
phone = titles.css('div[itemprop=telephone]::text').extract_first()
yield {'name': name, 'street': street, 'phone':phone}
这是 csv 输出的样子:
顺便说一句,我用来获取 csv 输出的命令是:
scrapy crawl YellowpageSp -o items.csv -t csv
【问题讨论】:
-
我很快就谈过了。这对我有用。我正在投票这个答案和问题:D
标签: python-3.x csv web-scraping scrapy scrapy-spider