python - 由于 bs4 vs BeautifulSoup 导致导入错误

标签 python lxml beautifulsoup

我正在尝试使用 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。我该如何解决这个问题?

最佳答案

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

您可以通过将 bs4 模块映射到 sys.modules 中的 BeautifulSoup 来欺骗 soupparser.py 导入版本 4。在导入 soupparser 之前:

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

from lxml.html.soupparser import fromstring

关于python - 由于 bs4 vs BeautifulSoup 导致导入错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14042023/

相关文章:

python - 如何使用 Beautiful Soup 提取具有某些类属性的列表项?

javascript - 如何通过javascript在浏览器中显示python输出?

python - 如何从Python-3的DataFrame中查找前N个最小值

python - 在Python中将有符号的二进制数转换为整数

python - 如何根据XML中XPath中子节点的值获取特定的 block (组)?

python - 带有换行符的网页抓取数据

python - 在 Pandas Dataframe 中添加新列比较索引

Python3 - 尝试获取数据属性值时,XPath 查询不会从站点返回整个列表

python - 只查找属性完全匹配的 HTML 节点

python - 用python解析xml中的CDATA