Python网络爬虫:如何将抓取的带欧元符号的价格字符串转为数字?
解决思路
方案1:直接读取标签的content属性(最优方案)
你抓取的<span>标签本身就内置了结构化的价格数值,在content属性中直接是标准的小数点格式53.56,不需要处理任何文本内容:
# 直接读取属性值再转浮点数即可 tyre_price = tyre_box.find('span',class_ = 'list-item-formatted-price')['content'] price = float(tyre_price)
这种方法容错率最高,不需要处理排版、符号等可能随页面变化的内容。
方案2:手动处理价格文本
如果需要自行解析页面显示的文本,按以下步骤处理即可:
- 清理所有空白字符(换行、空格等)
- 把欧洲格式价格的逗号(作为小数点分隔符)替换为标准小数点
- 移除欧元符号
€ - 再转换为浮点数
示例代码:
tyre_price = tyre_box.find('span',class_ = 'list-item-formatted-price').text # 清理并转换 processed_price = tyre_price.replace('\n','').replace(' ','').replace(',','.').replace('€','') price = float(processed_price)
你之前的代码报错是因为处理后的文本还保留了逗号、空格和欧元符号,不符合float类型的格式要求。
内容的提问来源于stack exchange,提问作者Mattia Costola
相关产品推荐
相关产品推荐

