1.BeautifulSoup库简介
Beautiful Soup库,也叫做beautifulsoup4或bs4库,是解析、遍历、维护“标签树”的功能库
标签简单介绍
<p>...</>:标签Tag
<p class = "title">...</p> p:名称成对出现,class=xxx属性0个或者多个
2.Beautiful Soup库解析器
- bs4的HTML解析器 BeautifulSoup(test,‘html.parser’) 要求安装bs4库
- lxml的HTML解析器 BeautifulSoup(test,‘lxml’) 要求pip install lxml
- lxml的XML解析器 BeautifulSoup(test,‘xml’) 要求pip install lxml
- html5lib的解析器 BeautifulSoup(test,‘html5lib’) 要求 pip install html5lib
3.Beautiful Soup库的基本元素
Tag: 标签,最基本的信息组织单元,分别用<></>标明开头和结尾
Name: 标签的名字 <p>...<p>的名字是'p',格式:<tag>.name
Attributes: 标签的属性,字典形式组织 格式:<tag>.attrs
NavigableString: 标签内非属性字符串,<>...</>中字符串,格式:<tag>.string
Comment:标签内字符串的注释部分,一种特殊的Comment类型
4.标签树的下行遍历
① .contents 子节点的列表,将<tag>
所有儿子节点存入列表
② .children 子节点的迭代类型,与.contents类似,用于循环遍历儿子节点
③ .descendants 子孙节点的迭代类型,包含所有子孙节点,用于循环遍历
5.标签树的上行遍历
① .parent 节点的父亲标签
② .parents 节点的先辈标签的迭代类型,用于循环遍历先辈节点
6.标签树的平行遍历
注意:平行遍历发生再同一个父亲节点下的个节点间,遍历包括其中的string
① .next_sibling: 返回按照HTML文本顺序的下一个平行节点标签
② .previous_sibling: 返回按照HTML文本顺序的上一个平行节点标签
③ .next_siblings: 迭代类型,返回按照HTML文本顺序的后续所有平行节点标签
④ .previous_siblings: 迭代类型,返回按照HTML文本顺序的前续所有平行节点标签
7.按html格式输出
.prettify()
为html文本增加换行符号,也可以对单个标签进行处理。