在 Python 3.5 中导入 bs4

Importing bs4 in Python 3.5

我已经安装了 Python 3.5 和 Beautifulsoup4。当我尝试导入 bs4 时,出现以下错误。有什么解决办法吗?或者我应该只安装 Python 3.4 吗? 请非常明确 - 我是编程新手。非常感谢!

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python 3.5\lib\sit-packages\bs4\__init__.py", line 30, in    <module>
   from .builder import builder_registry, ParserRejectionMarkup
  File "C:\Python 3.5\lib\sit-packages\bs4\__init__.py", line 308, in <module>
   from . import _htmlparser
  File "C:\Python 3.5\lib\sit-packages\bs4\_htmlparser.py", line 7, in <module>
   from html.parser import ( 
ImportError: cannot import name 'HTMLParseError'

更新: 从 4.4.0 开始,BeautifulSoup 与 Python 3.5 兼容。升级:

pip install --upgrade beautifulsoup4

旧答案:

由于针对 Deprecate strict mode of HTMLParser 问题所做的更改:

Issue #15114: the strict mode and argument of HTMLParser, HTMLParser.error, and the HTMLParserError exception have been removed.

恐怕 beautifulSoup4 目前与 Python 3.5 不兼容。使用Python 3.4.

我已经向作者发送了有关此错误的后续信息。如果你想在 Python 3.5a 上安装 BeautifulSoup,我已经将源代码的工作补丁上传到 github。

https://github.com/jjangsangy/BeautifulSoup4

您可以使用 setup.py 安装它,或者将此代码复制并粘贴到终端。

git clone https://github.com/jjangsangy/BeautifulSoup4 \
    && cd BeautifulSoup4 \
    && python3.5 setup.py install

我在这里假设,因为您正在试用 3.5a,所以您的 python 解释器已安装,并且对您的 site-packages 目录具有适当的用户权限,因此不需要调用 sudo。

更新:BeautifulSoup 4.4.0 已更新为 python3.5 兼容,因此如果您仍然遇到此问题,pip install --upgrade beautifulsoup4 应该可以解决问题。