我试图从一些HTML中分离出整数,例如“
5500英里
”。
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看起来像这样:
我的CSV
所以标题和价格栏都很好。但“里程”列是错误所在。
我的脱衣舞指挥有什么问题吗?
只需更改里程数的XPath
从…起
mileage = advert.xpath( './/*[@class="specs"]//li[1]/text()' ).extract()
到
mileage = advert.xpath( './/*[@class="specs"]//li[1]/text()[2]' ).extract()
您将获得正确的输出:
title,price,mileage
ALFA ROMEO GIULIA (0) V6 BITURBO QUADRIFOGLIO 2018 (2018),"£48,500",5500
ULEZ CHARGE EXEMPT! EURO 6 (2017),"£25,695",11450
ALFA ROMEO GIULIA (0) V6 BITURBO QUADRIFOGLIO NRING 2019 (2019),"£83,500",100
ALFA ROMEO GIULIA (0) TD SPECIALE 2017 (2017),"£22,500",23700
问题内容: 这是我在Chrome 11和Firefox 4中测试过的代码段: 如您所见,我超时了,所以我可以测试是否在之前输出。以我的经验,虽然不是。 有没有一种方法可以在结束响应之前输出数据,例如以包形式发送数据? 问题答案: 如果将内容类型更改为文本/纯文本,例如: 然后firefox将立即显示内容。Chrome似乎仍在缓冲(如果您编写更多内容,Chrome会立即显示它)。
我有三个片段F1 F2 F3 F4都可以从侧边栏访问。 这四个都可以在任何时间以任何顺序调用, 现在我想知道,如果已经单击(创建)了F1,则不再创建F1,而只使用片段管理器将片段F1带回到前面。所有其他片段相同 到目前为止,我对容器中的每个片段都尝试了这种方法(片段活动) 如果部分确保不再重新创建片段(如果已经创建),那么我应该在部分中写些什么,以便可以将已经创建的片段放在视图层次结构的前面 请帮
我需要以.csv格式输出我的hadoop结果。我要怎么做?我的代码:https://github.com/studhadoop/xml/blob/master/xmlparser11.java 我是否应该简单地在代码中包含csvoutputFormat。我正在使用mapreduce API MyJob.sh 解决方案
问题内容: 我需要以.csv格式输出hadoop结果。我该怎么做?我的代码:https : //github.com/studhadoop/xml/blob/master/XmlParser11.java 我应该在我的代码中简单地包含csvoutputFormat吗?我正在使用mapreduce API myjob.sh 解 是的,我不见了>在猫里 问题答案: 您可以使用TextOutputFor
我有一个活动A,它调用fragment Bf,它调用fragment Cf。我希望在调用Cf时将Bf放置在Backback中,以便用户可以导航回它。然而,如果在Cf中按下特定按钮,我希望Bf从Backback中删除。这可能吗? 我看到有一个popBackStack()函数。然而,我有点困惑这将如何工作。使用此功能安全吗?是否有可能在Backback上的Bf之后插入来自不同应用程序的活动? 此外,是
问题内容: 有没有一种简单的方法可以从Linux命令行运行MySQL查询并以CSV格式输出结果? 这是我现在正在做的事情: 当有很多列需要用引号引起来时,或者结果中有引号需要转义时,它将变得混乱。 问题答案: 从http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or- csv-file/ 使用此命令