...
soup = BeautifulSoup(html, "lxml")
File "/Library/Python/2.7/site-packages/bs4/__init__.py", line 152, in __init__
% ",".join(features))
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?
我的终端上的上述输出。我在 Mac OS 10.7.x 上。我有 Python 2.7.1,并按照 本教程 获取 Beautiful Soup 和 lxml,它们都成功安装并使用 位于此处 的单独测试文件。在导致此错误的 Python 脚本中,我包含了这一行: from pageCrawler import comparePages
在 pageCrawler 文件中,我包含了以下两行: from bs4 import BeautifulSoup
from urllib2 import urlopen
对于找出问题所在以及如何解决问题的任何帮助将不胜感激。
原文由 user3773048 发布,翻译遵循 CC BY-SA 4.0 许可协议
我怀疑这与 BS 将用来读取 HTML 的解析器有关。他们 的文档在这里,但如果你像我一样(在 OSX 上),你可能会遇到一些需要一些工作的东西:
您会注意到在上面的 BS4 文档页面中,他们指出默认情况下 BS4 将使用 Python 内置的 HTML 解析器。假设您在 OSX 中,Apple 捆绑的 Python 版本是 2.7.2,它对字符格式设置并不宽松。我遇到了同样的问题,所以我升级了我的 Python 版本来解决它。在 virtualenv 中执行此操作将最大限度地减少对其他项目的干扰。
如果这样做听起来很痛苦,您可以切换到 LXML 解析器:
然后尝试:
根据您的情况,这可能就足够了。我发现这很烦人,需要升级我的 Python 版本。使用 virtualenv, 您可以相当轻松地迁移您的包。