我正在尝试使用urllib2获取页面的html并通过beautifulsoup解析它但是我遇到了html的问题,其中包含Â
和&
符号/字母,例如这里是代码snippit:
<p>Total&2 £100.00.<br/>Total&2 £100.00<br/>Total&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
答案 0 :(得分:1)
我怀疑这与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版本。使用virtualenv,you can migrate your packages非常容易