...
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脚本中,我包含了这一行: 导入comparePages 在pageCrawler文件中,我包含了以下两行代码: 从bs4导入BeautifulSoup 从urllib2导入urlopen

任何帮助找出问题是什么以及如何解决都将不胜感激。


当前回答

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

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

其他回答

在一些参考文献中,使用第二个而不是第一个:

soup_object= BeautifulSoup(markup,'html-parser')
soup_object= BeautifulSoup(markup,'html.parser')

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

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

在python环境中安装LXML解析器。

pip install lxml

你的问题会解决的。你也可以使用内置的python包:

soup = BeautifulSoup(s,  "html.parser")

注意:“HTMLParser”模块已被重命名为“html”。在Python3中

pip安装lxml,然后将xml保存在soup = BeautifulSoup(URL, "xml")在Mac上完成了这项工作。

我修复了以下变化

之前更改

soup = BeautifulSoup(r.content, 'html5lib' )
print (soup.prettify())

后改变

soup = BeautifulSoup(r.content, features='html')
print(soup.prettify())

我的代码正常工作