...
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上,我有Python2.7.1,然后跟着this tutorial得到漂亮的Soup和lxml,这两个版本都安装成功,并且可以使用单独的测试文件located here。在导致此错误的Python脚本中,我包含了这一行:
from pageCrawler import comparePages
在pageCrawler文件中,我包含了以下两行:
from bs4 import BeautifulSoup
from urllib2 import urlopen
如果您能帮助我们找出问题所在以及解决方法,我们将不胜感激。
我更喜欢内置python html解析器,不安装不依赖项
soup = BeautifulSoup(s, "html.parser")
我怀疑这与BS用来读取HTML的解析器有关。他们document is here,但是如果你和我一样(在OSX上),你可能会被一些需要做点工作的事情困住:
您会注意到,在上面的BS4文档页面中,他们指出,默认情况下,BS4将使用Python内置的HTML解析器。假设您在OSX中,Apple捆绑的Python版本是2.7.2,这对字符格式不太宽容。我遇到了同样的问题,所以我升级了我的Python版本来解决这个问题。在virtualenv中这样做将最小化对其他项目的干扰。
如果这样做听起来很痛苦,可以切换到LXML解析器:
然后尝试:
根据你的情况,这可能已经足够好了。我觉得这已经够烦人了,需要升级我的Python版本。使用virtualenv,you can migrate your packages相当容易。
对于安装了bs4的基本开箱即用python,您可以使用
如果您想使用格式化程序formatter='xml',则需要
相关问题 更多 >
编程相关推荐