[英]Scrapy prints data in a csv file in every other row
我已經在python scrapy中編寫了一個腳本,以分析Yellowpage中的某些項目。 當我執行腳本時,它確實可以完美解析所有項目。 但是,每當將相應的抓取數據寫入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文件中填充數據的局部圖片:
一切似乎都還好,只是用來顯示csv的任何軟件都被Windows換行符弄糊塗了。
通常,換行符為\\n
而在Windows上為\\n\\r
。 Scrapy對操作系統的了解會添加Windows換行符,而不是通用換行符。 您的csv程序需要通用換行符,但會獲得Windows換行符。
此處最簡單的解決方法是手動從文件中刪除\\r
字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.