显示标签为“Text”的博文。显示所有博文
显示标签为“Text”的博文。显示所有博文

九月 18, 2006

Beautiful Soup with Chinese.

BS对unicode文档处理的基本流程是:

  • 首先判断 BeautifulSoup(html, fromEncoding=encoding)中指定encoding
  • 如果没有指定 encoding,则调用 chardet (如果已安装),或是内置的unicodeDammit尝试探测编码
  • 最后将编码转换为unicode,进行相关的解析
而输出字符的流程更为简单:
  • 通过__str__(coding) 或 renderContents(coding) 指定输出的编码:encode(coding)
  • 如果coding没有指定,则以 'utf-8' 作为默认输出
所以,若是处理 "gbk" 的文档,需要这样使用


soup = BeautifulSoup(html_str, fromEncoding="gbk")
print soup.__str__('gbk')
# or
print soup.__str__().decode('utf-8')