由于bs4与BeautifulSoup导致导入错误

时间:2012-12-26 14:33:24

标签: python beautifulsoup lxml bs4

我正在尝试使用beautifulsoup兼容的lxml并且它给了我一个错误:

from lxml.html.soupparser import fromstring
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/lxml/html/soupparser.py", line 7, in <module>
    from BeautifulSoup import \
ImportError: No module named BeautifulSoup

我安装了bs4。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:10)

错误是由soupparser.py在安装版本4时尝试导入BeautifulSoup版本3引起的。版本4中的模块名称已从BeautifulSoup更改为bs4

您可以在导入soupparser.py之前将bs4模块映射到sys.modules中的BeautifulSoup,以便soupparser导入版本4:

import sys, bs4
sys.modules['BeautifulSoup'] = bs4

from lxml.html.soupparser import fromstring

答案 1 :(得分:0)

现在有一个与bs4一起使用的soupparser版本。它可以在这里找到:https://github.com/lxml/lxml/blob/master/src/lxml/html/soupparser.py

答案 2 :(得分:-1)

尝试添加:

from bs4 import BeautifulSoup

并确保您的系统安装的BeautifulSoup版本正确。