python - 通过 Beautiful Soup 解析带有 unicodes 的 HTML 时出现问题

标签 python regex html-parsing beautifulsoup

如果 HTML 包含 ascii 超过 128 的 unicode,Beautiful Soup 似乎无法正常工作(对我来说)。为此应使用什么合适的解码编码?

raw = open('index.html').read()<br/> BeautifulSoup.BeautifulSoup(raw)

错误

...stacktrace...<br/> UnicodeEncodeError: 'ascii' codec can't encode character u'\xe9' in position 8094: ordinal not in range(128)

最佳答案

问题不在于解析文件。使用您在给 Marco 的评论中提供的链接,执行 soup = BeautifulSoup(urllib.urlopen(your_link)) 效果绝对没问题。

当您尝试将解析后的数据打印到控制台时,就会遇到问题,因为它现在已转换为 Unicode,并且 Python 会尝试将其输出为 ASCII,除非您另有说明。因此,在控制台中执行 print soup 而不仅仅是 soup 会起作用。

关于python - 通过 Beautiful Soup 解析带有 unicodes 的 HTML 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7769322/

相关文章:

javascript - 如何突出显示textarea html代码的一部分

python - numpy 将二维数组保存到文本文件

python - 分隔 numpy 数组中的数字,这些数字用单引号括起来,并用空格分隔

python - Tensorflow 负采样

regexp_replace POSTGRESQL

c# - 将 HTML 表格解析为 CSV 的最佳方法

python - 在 pyqt 上显示图像

javascript - 管理推送到数组或与正则表达式匹配的 JSON 响应

c++ - 从 IHTMLDocument2* 获取页面上的可见文本

java - 如何查找给定文本的html元素