python - 从 Scrapy 响应的开头和结尾去除 \t
问题描述
我想清理我的 Scrapy 响应。我正在构建一个简单的价格监视器,但我无法获得干净的价格。
我得到以下回应:
['\n\t\t\t\t\t\t\t\t\t\t\t\t272.28€\t\t\t\t\t\t\t\t\t\t\t']
理想情况下,我希望它是(浮动?):
272.28
我正在使用scrapy项目来存储值,例如:
def parse_item(self, response):
item = HobbyItem()
item['new_price'] = response.css('span.price.new-price').extract()
item['base_price'] = response.css('span.price.base-price').extract()
谢谢您的帮助!
解决方案
因为看起来文本在列表中,所以您首先需要将文本从列表中取出,然后将其剥离
>>> response = ['\n\t\t\t\t\t\t\t\t\t\t\t\t272.28€\t\t\t\t\t\t\t\t\t\t\t']
>>> text = response[0]
'\n\t\t\t\t\t\t\t\t\t\t\t\t272.28€\t\t\t\t\t\t\t\t\t\t\t'
>>> clean_text = text.strip()
'272.28€'
>>> number_text = clean_text.replace("€", "")
'272.28'
>>> number = float(number_text)
272.28
或作为单线:
>>> response = ['\n\t\t\t\t\t\t\t\t\t\t\t\t272.28€\t\t\t\t\t\t\t\t\t\t\t']
>>> float(response[0].strip().replace("€", ""))
272.28
推荐阅读
- ubuntu - 如何在 Ubuntu 18.04 的 PhpStorm 中设置 Super+comma 快捷方式?
- javascript - 使用 Material UI 和 React 的动态头像
- javascript - 如何配置“webpack”?JavaScript
- javascript - 如何在运行时使用 jquery 创建 json 对象数组?
- c++ - STL 算法和 back_inserter 可以预先分配空间吗?
- python - 如何将附加列表存储到python中的.txt文件中
- python-2.7 - 杀死一个从 tkinter 开始的 shell 命令
- java - Dropwizard:无法提供静态 HTML
- windows - Jenkins ec2 插件 - windows 代理很慢
- reactjs - 使用别名而不是相对路径创建的打字稿声明文件