python 报错 bs4 FeatureNotFound: Couldn‘t find a tree builder with the features you requested: lxml

安装beautifulsoup后,运行测试报错

from urllib import request
from bs4 import BeautifulSoup

url = "http://www.baidu.com"
rsp = request.urlopen(url)
content = rsp.read()

soup = BeautifulSoup(content,"lxml")

print(soup.title.string)

运行结果:

----------------------------------------------------------------------
FeatureNotFound                      Traceback (most recent call last)
~/data/spider/bs.py in <module>
     16 content = rsp.read()
     17 
---> 18 soup = BeautifulSoup(content,"lxml")
     19 
     20 print(soup.title.string)

~/data/spider/venv/lib/python3.7/site-packages/bs4/__init__.py in __init__(self,markup,features,builder,parse_only,from_encoding,exclude_encodings,**kwargs)
    196                     "Couldn't find a tree builder with the features you "
    197                     "requested: %s. Do you need to install a parser library?"
--> 198                     % ",".join(features))
    199             builder = builder_class()
    200             if not (original_features == builder.NAME or

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

经过测试发现是lxml的问题,使用 pip install lxml 安装,安装完后,在运行还是一样出错,经百度、知乎的说法是新的库不支持,新版本语法支持改变了

使用 pip install lxml时,自动安装的是最新 4.2.5版本

解决方法一:

  卸载新的换老的就可以了

    pip uninstall lxml

    pip install lxml==3.7.0

方法二:

在报错代码中把函数参数中所有的 "lxml" 改成 "html.parser"

soup = BeautifulSoup(content,"lxml")

改成

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

 

 

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...