我正在尝试使用 BeautifulSoup 从 html 文档中获取一些文本。在一个对我来说非常相关的案例中,它产生了一个奇怪而有趣的结果:在某个点之后,文本中充满了多余的空格(一个空格将每个字母与下一个字母分开)。我试图在网上搜索以找到原因,但我只遇到了一些关于相反错误的消息(根本没有空格)。
您有什么建议或暗示会发生这种情况,以及如何解决这个问题吗?
这是我创建的最基本的代码:
from bs4 import BeautifulSoup
import urllib2
html = urllib2.urlopen("http://www.beppegrillo.it")
prova = html.read()
soup = BeautifulSoup(prova)
print soup
这是从结果中提取的一行,问题开始出现的那一行:
value=\"Giuseppe labbate ogm? non vorremmo nuovi uccelli chiamati lontre\"><input onmouseover=\"Tip('<cen t e r c l a s s = \ \ ' t i t l e _ v i d e o \ \ ' > < b > G i u s e p p e l a b b a t e o g m ? n o n v o r r e m m o n u o v i u c c e l l i c h i a m a t i l o n t r e <
最佳答案
我认为这是 Lxml 的 HTML 解析器的错误。 尝试:
from bs4 import BeautifulSoup
import urllib2
html = urllib2.urlopen ("http://www.beppegrillo.it")
prova = html.read()
soup = BeautifulSoup(prova.replace('ISO-8859-1', 'utf-8'))
print soup
这是该问题的解决方法。 我相信该问题已在 lxml 3.0 alpha 2 和 lxml 2.3.6 中修复,因此值得检查您是否需要升级到更新的版本。
如果您想了解有关最初在此处提交的错误的更多信息:
https://bugs.launchpad.net/beautifulsoup/+bug/972466
希望对您有所帮助,
海登
关于python - BeautifulSoup 返回意外的额外空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17859832/