2

我正在下载一个带有 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>出于某种未知原因在错误的位置添加了一个。这是里面相同的 HTML forumHTML

<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。

4

2 回答 2

1

我在 Google 地方页面上抓取时遇到了类似的问题,没有添加 > 符号,但我在 html 代码中引入的空格也遇到了同样的问题......并且重新安装 BeautifoulSoup 并没有使它工作:)

无论如何,我回到 BeautifulSoup4 文档,阅读了它支持的不同 HTML 解析器,尝试使用 Python 的 html.parser

from bs4 import BeautifulSoup

...

page = BeautifulSoup(markup, "html.parser")

问题解决了。如果您遇到此问题,您可能需要使用受支持的 HTML 解析器之一。

于 2013-08-30T19:19:53.320 回答
0

很长一段时间没有找到解决方案,我决定重新安装 BeautifulSoup - 以某种方式解决了问题。

于 2013-07-12T16:46:02.353 回答