Python 得到斜线和字母,而我只想要数字
我正在使用以下代码从电子商务网站恢复价格:Python 得到斜线和字母,而我只想要数字,python,scrapy,Python,Scrapy,我正在使用以下代码从电子商务网站恢复价格: response.css('div.price.regularPrice::text').extract() 但结果如下: '\r\n\t\t\tDhs 5.00\r\n\t\t\t\t\t\t\t\t', '\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t', 我不想要斜线和字母,只想要数字5。如何获取此信息?使用正则表达式仅获取数字 \d+regex表达式应该起作用。首先,您可以使用strip()删除选项卡“\t”,然后
response.css('div.price.regularPrice::text').extract()
但结果如下:
'\r\n\t\t\tDhs 5.00\r\n\t\t\t\t\t\t\t\t',
'\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t',
我不想要斜线和字母,只想要数字5。如何获取此信息?使用正则表达式仅获取数字
\d+
regex表达式应该起作用。首先,您可以使用strip()
删除选项卡“\t”
,然后输入“\n”
你得到了什么
['Dhs 5.00', '']
接下来,您可以使用if
跳过空元素
data = [item for item in data if item]
你得到了什么
['Dhs 5.00']
['5']
如果项目始终具有相同的结构Dns XXX.00
然后,您可以使用切片
[4:-3]
删除“Dhs”
和“.00”
你得到了什么
['Dhs 5.00']
['5']
因此,现在只需获取第一个元素数据[0]
即可获取5
如果需要,可以使用
int()
将字符串“5”
转换为整数5
你甚至可以把所有的都放在一行
data = ['\r\n\t\t\tDhs 5.00\r\n\t\t\t\t\t\t\t\t',
'\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t']
data = [item.strip()[4:-3] for item in data if item.strip()]
result = int(data[0])
若您总是只需要列表中的第一个元素,那个么您可以编写它
data = ['\r\n\t\t\tDhs 5.00\r\n\t\t\t\t\t\t\t\t',
'\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t']
result = int( data[0].strip()[4:-3] )
使用按钮
{}
设置代码和结果的格式。可以使用strip()
删除选项卡并输入,以后可以使用切片
data = ['\r\n\t\t\tDhs 5.00\r\n\t\t\t\t\t\t\t\t',
'\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t']
result = int( data[0].strip()[4:-3] )