BeautifulSoup4库
和lxml一样,BeautifulSoup也是一个 基于HTML/XML的解析器,主要功能也是如何解析和提取html/xml数据
Lxml只会局部遍历,而beautifulsoup是基于HTML DOM(Document Object Model)的,会载入整个文档,解析整个DOM树,因此需要的时间和内存开销会大,性能要低于lxml
Beautifulsoup用来解析html比较简单,api比较人性化,支持css选择器、python标准库中的html解析器,也支持lxml的xml解析器
安装:pip install bs4
使用方法:
from urllib import request
from bs4 import BeautifulSoup
url = "http://www.baidu.com"
rsp = request.urlopen(url)
content = rsp.read()
soup = BeautifulSoup(content, "html.parser") #解析器为html.parser,如果不指定解析器则使用默认解析器
print(soup.title.string)
解析器比较
find_all的使用:
1.在提取标签的时候,第一个参数是标签的名字。然后如果在提取标签的时候想要使用标签属性过滤,那么可以在这个方法中通过关键字参数的形式,将属性的名字以及对应的值传进去,或者使用sttrs属性,将所有的属性以及他的值放在一个字典中传给attrs属性
2.有些时候,在提取标签的时候,不想提取那么多,可以使用limit参数,限制提取个数。
find和find_all的区别:
1.find:找到第一个满足条件的标签返回。(一个)
2.find_