Bs4(获取内容和标签、搜索文档树、CSS选择器查询内容)
第三方的库。将复杂的HTML文档转化为一个复杂的树形结构,每个节点都是Python对象,所有对象都可以归纳为4种:
- Tag 有标签有内容
- NavigableString 只有内容,若有注释符号,则包含
- BeautifulSoup 全部文档内容
- Comment 标签里的内容,不包含注释符号
准备一个html文件,详情代码请看链接
https
一、经常使用
beautifulSoup(取出全部标签和内容,即文档)、string(取出内容)、按标签来(取出标签和内容)
二、使用大纲
1、Tag
print(bs.title) 有标签,有内容,
2、NavigableString 标签里的内容(字符串),若是有注释符号,就输出注释符号
print(bs.title.string) # 百度一下,你就知道
print(type(bs.title.string)) # <class 'bs4.element.NavigableString'>
只要内容
print(bs.a.attrs)
以键值对的方式,拿到一个标签里的所有属性
3、BeautifulSoup表示整个文档
print(bs)
4、comment 是一个特殊的NavigableString,输出的内容不包含注释符号
print(bs.a.string)
三、详细使用
1、导入import
并将html打开,保存在file中,读取file文件,并保存在HTML文档里。解析文档,制定解析器,保存在树形结构bs对象里进行遍历。
from bs4 import BeautifulSoup
file = open("baidu.html","rb") # 打开HTML
html = file.read() # 读取文件,保存在HTML文档里
bs = BeautifulSoup(html,"html.parser") # 解析文档,并制定解析器(此用HTML解析器html.parser),
# 形成一个树形结构,通过bs对象进行遍历
2、遍历全部文档(BeautifulSoup)
'''BeautifulSoup 全部文档内容'''
print(bs)
# print(type(bs)) # 4、<class 'bs4.BeautifulSoup'>
3、根据标签Tab获取内容,获取内容和标签
# 打印标签及其内容,拿到第一个内容
print(bs.a