一说应添加"html.parser"
bs = BeautifulSoup(html, "html.parser")
亲测可用。
也有如下说法。
html5lib,lxml
注意:双引号" "千万不要写错。
BeautifulSoup文档代码中没有提示
https://beautifulsoup.readthedocs.io/zh_CN/v4.4.0/
但给出了这样一段。
推荐使用lxml作为解析器,因为效率更高. 在Python2.7.3之前的版本和Python3中3.2.2之前的版本,必须安装lxml或html5lib, 因为那些Python版本的标准库中内置的HTML解析方法不够稳定.
提示: 如果一段HTML或XML文档格式不正确的话,那么在不同的解析器中返回的结果可能是不一样的,查看 解析器之间的区别 了解更多细节
解析器使用方法优势劣势
Python标准库BeautifulSoup(markup, "html.parser")
Python的内置标准库执行速度适中文档容错能力强
Python 2.7.3 or 3.2.2)前 的版本中文档容错能力差lxml HTML 解析器BeautifulSoup(markup, "lxml")
速度快文档容错能力强
需要安装C语言库lxml XML 解析器 BeautifulSoup(markup, ["lxml-xml"])
BeautifulSoup(markup, "xml")
速度快唯一支持XML的解析器
需要安装C语言库html5libBeautifulSoup(markup, "html5lib")
最好的容错性以浏览器的方式解析文档生成HTML5格式的文档
速度慢不依赖外部扩展