在美丽的汤中找不到lxml

时间:2016-07-28 06:23:34

标签: python-3.x beautifulsoup lxml anaconda

我正在尝试使用beautifulsoup4来解析一系列用XHTML编写的网页。我假设为了获得最佳结果,我应该与xml解析器配对,而且我所知道的唯一一个由beautifulsoup支持的是lxml。

但是,当我按照beautifuloup文档尝试运行以下内容时:

FeatureNotFound: Couldn't find a tree builder with the features you    
requested: xml. Do you need to install a parser library?

导致以下错误:

@SideOnly(Side.CLIENT)
public class TalkGui  extends Gui {
}
它使我疯狂。我发现了另外两个发布相同问题的用户的记录

此处How to re-install lxml?

和这里 bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. Do you need to install a parser library?

我使用这篇文章(请参阅此行下方的链接)重新安装和更新lxml并更新了漂亮的汤,但我仍然收到错误。 Installing lxml, libxml2, libxslt on Windows 8.1

Beautifulsoup正在运作,因为我运行了以下代码,它向我展示了其常用的标记语言墙 汤= BeautifulSoup(r.content,'html.parser')

以下是我的规格 Windows 8.1 Python 3.5.2 我在Anaconda 3中使用spyder ide来运行我的代码(诚然,我不太了解)

我确信它是一个初学者会做的混乱,因为正如我之前所说,我的编程经验很少。

我如何解决这个问题,或者如果它是一个已知的错误,你们会建议我只使用lxml来抓取数据。

3 个答案:

答案 0 :(得分:0)

我认为问题是r.content。通常它给出响应的原始内容,不一定是HTML页面,它可以是json等。
尝试喂r.text汤。

soup = BeautifulSoup(r.text, ‘lxml’)

更好:

r.encoding='utf-8'

然后

page = r.text

soup = BeautifulSoup(page, 'lxml')

如果要解析xml,可以使用'lxml-xml'作为解析器。

答案 1 :(得分:0)

这是一篇很老的文章,但是我今天遇到了这个问题,找到了解决方法。您需要安装lxml。打开终端并输入

pip3 install lxml

现在重新启动开发环境(VS Code,Jupyter Notebook或其他工具),它应该可以工作。

答案 2 :(得分:0)

只需导入 lxml,然后使用解析器命令。 2021年如果用pip安装lxml,由于某种原因pycharm每次写新程序都需要安装