我正在使用urllib2下载页面并将其加载到BeautifulSoup中:
from bs4 import BeautifulSoup as Soup
import urllib2
baseHTML = 'http://forums.macrumors.com/'
baseForum = 'forumdisplay.php?f=109'
forumHTML = urllib2.urlopen(baseHTML+baseForum).read()
page = Soup(forumHTML)
print forumHTML
print page
打印forumHTML
时,一切正常,返回的html完全正常。
但是,在打印page
时,HTML会出现乱码:
<a href="showthread.php?t=324487" id="thread_title_324487">iPhone Tips and Tricks thread</a>
<span class="smallf">o n t " s t y l e = " w h i t e - s p a c e
如您所见,BeautifulSoup因错误的原因在错误的位置添加>
。
这是forumHTML
内的相同HTML:
<a href="showthread.php?t=324487" id="thread_title_324487">iPhone Tips and Tricks thread</a>
<span class="smallfont" style="white-space
为什么会这样?我在Windows 64位上使用python 2.7,如果这很重要的话。
答案 0 :(得分:1)
我在Google地方信息页面上有类似的问题,没有&gt;添加了标志,但我在html代码中引入了空格相同的问题...并重新安装BeautifoulSoup并没有使它工作:)
无论如何,我回到了BeautifulSoup4文档,阅读了它支持的不同HTML解析器,尝试使用Python的html.parser
from bs4 import BeautifulSoup
...
page = BeautifulSoup(markup, "html.parser")
问题解决了。如果您遇到此问题,可能需要使用支持的HTML解析器之一。
答案 1 :(得分:0)
很长一段时间没有找到解决方案,我决定重新安装BeautifulSoup - 以某种方式修复了问题。