BeautifulSoup无法使用`html5lib`解析html

时间:2015-12-25 13:49:28

标签: python parsing beautifulsoup bs4

BeautifulSoup无法使用选项private static String FindDupValueUsingSet(String[] sValueTemp) { Set<String> sValueSet = new HashSet<String>(); for(String tempValueSet : sValueTemp) if (!tempValueSet.equals("")) //exclude empty Strings (add null checking if required) if (!sValueSet.add(tempValueSet)) return tempValueSet; return ""; } 解析html页面,但使用选项html5lib正常工作。根据{{​​3}},html.parser应该比html5lib更宽松,那么为什么我在使用它来解析html页面时会遇到乱码?

以下是一个小的可执行示例。(使用html.parser更改html5lib后,中文输出正常。)

html.parser

1 个答案:

答案 0 :(得分:1)

不要重新编码您的内容。将处理解码留给Beautifulsoup:

soup = BeautifulSoup(res.content, 'html5lib')

如果要重新编码,则需要替换源中存在的meta标题:

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

或手动解码并传入Unicode:

soup = BeautifulSoup(res.content.decode('gbk'), 'html5lib')