选择哪个HTML解析器以及为什么BeautifulSoup不工作?
我需要解析一个使用 windows-1251 编码的 HTML 页面(它是俄文的)。
问题是这是一个网络应用,我必须使用 Python 2.4,而且没有办法在服务器上安装模块。我唯一尝试过的就是请管理员安装 lxml 模块,但它在 2.4 上没有正确构建,所以导入 lxml.html 时失败了。
现在我在选择 BeautifulSoup 和 html5lib 模块,但我没有找到任何简单的使用 html5lib 的例子(我只需要从某个特定的 div 元素中提取一些文本,并去掉里面的其他标签)。而且,BeautifulSoup 返回了一个错误 '开始标签中有杂乱字符: u'\u041f\u0440\u043e\u0434\u0430\u0436\u0430>',我尝试将源页面从 CP1251 解码为 unicode 或其他编码,但都没有成功。
我哪里做错了?或者我应该使用哪个解析器?
1 个回答
0
这个问题有一个很好的答案,讲的是如何转换成UTF-8格式:
Python:如何从Windows 1251转换到Unicode?
我很喜欢BeautifulSoup这个库,但对一些奇怪的字符集不太熟悉。如果是我在写这个,我可能会先处理一下输入,让它变成Unicode格式,这样大多数库就能顺利使用了。