python - BeautifulSoup 返回意外的额外空间

标签 python html text beautifulsoup

我正在尝试使用 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/

相关文章:

Python 正则表达式 : treat apostrophe as text

html - 图像垂直对齐 bootstrap 与文本

javascript - 如何使用 JavaScript/jQuery 更改多维数组的输入键名称

python - 从 ROI 中提取图像 (OpenCV)

python - Twisted Python 接口(interface)实例是否可以不实现该接口(interface)的所有功能?

python - 为什么python scrapy显示 "twisted.internet.error.TimeoutError"错误

jquery - 文本字段中的特殊字符

c++ - 在 C++ 中格式化文本

javascript - 仅使用文本偏移量在字符串中插入标签

python - 从字符串中提取所有名词