python - 如何删除 html 源代码中的 '\xa0'?
问题描述
我正在尝试使用漂亮的汤来抓取亚马逊页面的价格信息。
代码是在 macOS Catalina(版本 10.15.5)上编写的,使用的网络浏览器是 google chrome 版本 84.0.4147.135(官方构建)(64 位)。Python 版本 3.8.2。
正如您在下面的代码中看到的最后一行的输出(价格)。
有没有办法从输出中删除不需要的字符或改进我的代码,以便最终输出(价格)仅反映 ₹1,700.00?
不需要的字符是“ \xa0 ”
此外,是否对这些字符进行了解释,说明它们的含义以及为什么它们会作为输出的一部分出现。谢谢。
请参考以下代码:
import bs4
import requests
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36'}
res = requests.get('https://www.amazon.in/Automate-Boring-Python-Albert-Sweigart/dp/1593275994', headers=headers)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text)
soup.select('#soldByThirdParty > span')
[1,700.00 卢比]
elems = soup.select('#soldByThirdParty > span')
elems[0].text
'₹\xa01,700.00'
解决方案
要替换不需要的字符,您可以使用replace()
如下经典函数:
price = elems[0].text.replace(u'\xa0', u'')
如果您想了解有关角色的更多信息,我\xa0
可以建议您
推荐阅读
- r - 根据另一个变量的老化生成一个新变量
- selenium-webdriver - 无法定位元素:{"method":"css selector","selector":"a[href*='play.google.com']"}
- c - C中的冒泡排序算法——是这样吗?
- julia - Julia vs Mathematica:数值积分性能
- javascript - 如何将 Promise.race 或 Promise.all 与异步迭代一起使用?
- reactjs - 我可以在不弹出的情况下将 Create React App Jest Testing 与测试报告器一起使用吗?
- python - Python (Selenium) - 如何将第 1 页到最后一页的数据保存到同一个 CSV
- python-3.x - 在运行 huggingface gpt2-xl 模型嵌入索引超出范围时
- google-apps-script - 如何使用自定义函数将一个单元格中的字符串格式化为另一个单元格中的数字?
- sql - 避免在 PostgreSQL 中的正确元素上使用 SQL 子查询双连接?