beautifulsoup,html5lib:模块对象没有属性 _base

beautifulsoup, html5lib: module object has no attribute _base

当我更新我的包时,我遇到了这个新错误:

class TreeBuilderForHtml5lib(html5lib.treebuilders._base.TreeBuilder):
AttributeError: 'module' object has no attribute '_base'

我尝试更新 beautifulsoup,但没有更多结果。我该如何解决?

编辑 2017 年 11 月:这似乎不再有效

终于发现,搜索引擎没有抛出任何东西,但它在 beautifulsoup 的问题跟踪器上被引用:https://bugs.launchpad.net/beautifulsoup/+bug/1603299

它适用于 html5lib v0.9999999(7 个九)

"html5lib<=0.9999999"

我升级了 beautifulsoup4 和 html5lib,它解决了这个问题。

pip install --upgrade beautifulsoup4
pip install --upgrade html5lib

我也出现了同样的问题。我不知道你想做什么,但当我尝试使用 pd.read_html().

读取 pandas 中的 XML 文件时,它发生在我身上

问题已通过升级所有 beautifulsoup4、html5lib 和 lxml 解决,例如:

pip install bs4
pip install html5lib
pip install lxml

然后重新启动您的 Python 环境,现在它可以正常工作了。

这是上游包 html5lib 的问题:https://bugs.launchpad.net/beautifulsoup/+bug/1603299 要修复,强制降级到旧版本:

pip 安装 --upgrade html5lib==1.0b8

在@Bhavuk 的回答中降级到 html5lib 1.0b8 是有效的,但使用漂白剂解决了版本问题。

我的解决方案是更改漂白剂版本以与新版本的 html5lib 兼容

pip install --upgrade bs4
pip install --upgrade bleach==1.4.2
pip install --upgrade html5lib==1.0b8

Python 版本 3.5

这个命令解决了我的问题:

 sudo pip install html5lib==0.9999999

只需使用此安装 html5lib,因为如果您以正常方式安装,则必须使用 python2.

进行爬虫
sudo pip3 install html5lib==0.9999999

我发现尝试切换版本对我不起作用。最后,基于 on this issue 我出于我的目的在 ~/.local/lib/python3.7/site-packages/bs4/builder/_html5lib.py 编辑了相关文件。