![87ace8f9605fdbe30771fb55ef78121a.png](https://img-blog.csdnimg.cn/img_convert/87ace8f9605fdbe30771fb55ef78121a.png)
欢迎来到子奇的小屋
一起来看看Beautiful Soup 库的用法吧 !
Beautiful Soup库的理解
- 平时我们都要浏览网页,我们知道,网页信息即存储在web服务器网站中的文件夹数据,数据以二进制的形式存储在HTML中,HTML可以看成是用标签封装的“标签树”。
- Beautiful Soup库便是解析、遍历、维护“标签树”的功能库。
Beautiful Soup库的引用
- Beautiful Soup库,也叫beautifulsoup4或 bs4约定引用方式如下:
- from bs4 import BeautifulSoup
- import bs4
- BeautifulSoup 对应一个HTML/XML文档的全部内容
Beautiful Soup库解析器
- soup = BeautifulSoup('data','html.parser')
解析器使用方法条件bs4的HTML解析器BeautifulSoup(mk,'html.parser')安装bs4库lxml的HTML解析器BeautifulSoup(mk,'lxml')pip install lxmllxml的XML解析器BeautifulSoup(mk,'xml')pip install lxmlhtml5lib的解析器BeautifulSoup(mk,'html5lib')pip install html5libBeautifulSoup类的基本元素
- Tag 标签
- 最基本的信息组织单元,分别用<>和</> 标明开头和结尾
- 任何存在于HTML语法中的标签都可以用soup.<tag>访问获得 ,当HTML文档中存在多个相同对应内容时,soup.<tag>返回第一个
- Tag的name
- 标签的名字,<p>...</p>的名字是'p',格式:<tag>.name
- 每个<tag>都有自己的名字,通过<tag>.name获取,字符串类型
- Tag的attrs(属性)
- 标签的属性,字典形式组织,格式:<tag>.attrs
- 一个<tag>可以有0或多个属性,字典类型
- Tag的NavigableString
- 标签内非属性字符串,<>…</>中字符串,格式:<tag>.string
- NavigableString可以跨越多个层次
- Tag的Comment
- 标签内字符串的注释部分,一种特殊的Comment类型
- Comment是一种特殊类型
基于bs4库的HTML内容遍历方法
- 下行遍历
属性说明.contents子节点的列表,将<tag>所有儿子节点存入列表.children 子节点的迭代类型,与.contents类似,用于循环遍历儿子节点.descendants 子孙节点的迭代类型,包含所有子孙节点,用于循环遍历
BeautifulSoup类型是标签树的根节点
- 上行遍历
属性说明.parent 节点的父亲标签.parents 节点先辈标签的迭代类型,用于循环遍历先辈节点
- 平行遍历
属性 说明.next_sibling返回按照HTML文本顺序的下一个平行节点标签.previous_sibling 返回按照HTML文本顺序的上一个平行节点标签.next_siblings迭代类型,返回按照HTML文本顺序的后续所有平行节点标签 .previous_siblings迭代类型,返回按照HTML文本顺序的前续所有平行节点标签基于bs4库的HTML格式输出
- bs4库的prettify()方法
- .prettify()为HTML文本<>及其内容增加
- .prettify()可用于标签,方法:<tag>.prettify()'n'