当前位置: 首页 > 知识库问答 >
问题:

bs4。FeatureNotFound:找不到具有您请求的功能的树生成器:lxml。您需要安装解析器库吗?

高锦
2023-03-14
...
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?

以上输出在我的终端上。我使用的是MacOS10.7。x、 我有Python 2.7。1,并按照本教程获得Beautiful Soup和lxml,它们都已成功安装,并可使用位于此处的单独测试文件工作。在导致此错误的Python脚本中,我包含了这一行:来自pageCrawler import comparePages,在pageCrawler文件中,我包含了以下两行:来自bs4 import BeautifulSoup来自urllib2 import urlopen

如果您能帮助我们找出问题所在以及如何解决问题,我们将不胜感激。

共有3个答案

祁英哲
2023-03-14

对于安装了bs4的基本现成python,您可以使用

soup = BeautifulSoup(html, "html5lib")

但是,如果要使用formatter='xml',则需要

pip3 install lxml

soup = BeautifulSoup(html, features="xml")
哈扬
2023-03-14

我更喜欢内置的python html解析器,没有安装,没有依赖项

soup=BeautifulSoup(s,“html.parser”)

郗浩
2023-03-14

我怀疑这与BS用来读取超文本标记语言的解析器有关。他们的文档在这里,但是如果你像我一样(在OSX上),你可能会被一些需要一点工作的东西卡住:

您会注意到,在上面的BS4文档页面中,他们指出默认情况下BS4将使用Python内置HTML解析器。假设您使用的是OSX,Apple捆绑版Python是2.7。2这对于字符格式来说是不宽松的。我遇到了同样的问题,所以我升级了Python版本来解决这个问题。在virtualenv中这样做将最大限度地减少对其他项目的干扰。

如果这样做听起来很痛苦,您可以切换到LXML解析器:

pip install lxml

然后尝试:

soup = BeautifulSoup(html, "lxml")

根据您的场景,这可能足够好了。我觉得这很烦人,因此有必要升级我的Python版本。使用virtualenv,您可以相当轻松地迁移包。

 类似资料:
  • 问题内容: 我正在寻找用于Java的解析器生成器,该解析器生成器将执行以下操作:我的语言项目非常简单,并且仅包含少量标记。 以纯READABLE Java代码输出,以便我可以对其进行修改(这就是为什么我不使用ANTLR的原因)成熟的库,该库至少可以在Java 1.4上运行和使用 我看过以下内容,它们可能会起作用:JavaCC,jlex,Ragel? 问题答案: 您应该使用Rats …这样,您不必将

  • 平台-工具更新 我的平台是 Android-5.1 android-17

  • 我试图安装cakephp使用作曲家本教程,但在我运行命令后: 我得到的错误: 问题1-cakephp/cakephp-codesniffer 3.0.0需要squizlabs/php_codesniffer^3.0.0- 若要启用扩展,请验证是否已在中启用它们。ini文件:-/etc/php/7.0/cli/php。ini-/etc/php/7.0/cli/conf.d/10-opcache。in

  • 我已经做了一切来纠正这个错误,因为修改后的环境变量已经放置了工具。除了axis/WEB-INF/lib之外,tomcat9.0/bin和/lib中的jar。 安比恩特: CATALINA _ HOME = C:\ Program Files \ Apache软件基金会\Tomcat 9.0 JAVA_HOME=C:\Program Files\JAVA\jdk1.8.0_77 类路径=%Syste

  • 我是symfony1的新手。4.我正在尝试在现有项目中安装composer我运行安装命令获取以下信息: 加载包含包信息的composer存储库安装依赖项(包括require dev)无法将您的需求解析为可安装的包集。 问题一: 潜在原因: 包名中的一个错别字 根据您的最小最大稳定性设置,该软件包没有足够稳定的版本,请参阅https://groups.google.com/d/topic/compo

  • 我正在尝试设置从github repo克隆的Symfony项目,但在安装依赖项时遇到问题。 运行composer install时,结果如下: 这是composer.json 谢谢!