Skip to main content
 首页 » 编程设计

python之urllib2 一次又一次地检索带有 Â 和 & 符号/字母的 html,不确定如何删除它们

2025年05月04日14kerrycode

我正在尝试使用 urllib2 获取页面的 html 并通过 beautifulsoup 对其进行解析,但我遇到了具有 Â 的 html 的问题和 &amp符号/字母无处不在,例如这里是一个代码片段:

<p>Total&amp;2 £100.00.<br/>Total&amp;2 £100.00<br/>Total&amp;2 £100.00</p>

我无法删除 Â使用剥离或替换...

获取html的代码是:

html = urllib2.urlopen("http://www.websitehere.com", timeout=10).read().decode('UTF-8') 
soup = BeautifulSoup(html) 

有人能帮忙吗?

编辑

我已经尝试了各种解码,也尝试了位于:How to make the python interpreter correctly handle non-ASCII characters in string operations? 中的所有内容。但仍然没有:/

谢谢 - Hyflex

请您参考如下方法:

我怀疑这与 BS 用来读取 HTML 的解析器有关。他们 document it here但如果你像我一样(在 OSX 上),你可能会遇到一些需要做一些工作的事情:

您会注意到在上面的 BS4 文档页面中,他们指出默认情况下 BS4 将使用 Python 内置的 HTML 解析器。假设您在 OSX 中,Apple 捆绑的 Python 版本是 2.7.2,它对字符格式设置并不宽松。我遇到了同样的问题,所以我升级了 Python 版本来解决它。在 virtualenv 中执行此操作将最大限度地减少对其他项目的干扰。

如果这样做听起来很痛苦,您可以切换到 LXML 解析器:

pip install lxml 

然后尝试:

soup = BeautifulSoup(html, "lxml") 

根据您的情况,这可能就足够了。我发现这很烦人,需要升级我的 Python 版本。使用虚拟环境,you can migrate your packages相当容易