【发布时间】:2019-04-30 14:00:31
【问题描述】:
我正在尝试将整数与某些 HTML 隔离开来,例如"
5,500 英里
”。
import scrapy
class AlfaShortSpider(scrapy.Spider):
name = 'alfashort'
def start_requests(self):
yield scrapy.Request(url = 'https://www.pistonheads.com/classifieds/used-cars/alfa-romeo/giulia',
callback = self.parse_data)
def parse_data( self, response ):
advert = response.xpath( '//*[@class="ad-listing"]')
title = advert.xpath( './/*[@class="listing-headline"]//h3/text()' ).extract()
price = advert.xpath( './/*[@class="price"]/text()' ).extract()
mileage = advert.xpath( './/*[@class="specs"]//li[1]/text()' ).extract()
mileage = [item.strip() for item in mileage]
mileage = [item.replace(',','') for item in mileage]
mileage = [item.replace(' miles','') for item in mileage]
for item in zip(title,price,mileage):
price_data = {
'title' : item[0],
'price' : item[1],
'mileage' : item[2]
}
yield price_data
我的代码成功删除了逗号和“英里”,但在我的 CSV 输出中,我在此列中得到了不需要的空白行,我认为这是由于原始源中的回车所致。我的 CSV 如下所示:
所以标题和价格列没问题。但是 Mileage 列是错误所在。
我的 Strip 命令有问题吗?
【问题讨论】: