BeautifulSoup

Beautiful Soup

解析、遍历、维护 XML 的库。

安装Beautiful Soup:pip install beautifulsoup4

使用Beautiful Soup:

from bs4 import BeautifulSoup
soup = BeautifulSoup('<p>data</p>', 'html.parse')

Beautiful Soup 的解析器,其它的不用了解,只要知道 html.parse 即可。

Beautiful Soup 基本元素:

基本元素 说明
Tag 标签
Name 标签的名字,.name
Attributes 标签的属性,.attrs
NavigableString 标签内非属性字符串,<>…</>中的字符串
Comment 标签内字符串的注释部分

标签树的下行遍历:

属性 说明
.contents 子节点列表,即tag的所有儿子节点
.children 子节点的迭代类型,用于循环遍历儿子节点
.descendants 子孙节点的迭代类型,包含所有子孙节点

标签树的平行遍历(在同一个父节点下):

属性 说明
.next_sibling 按HTML文本顺序的下一个平行节点标签
.previous_sibling 按HTML文本顺序的上一个平行节点标签
.next_siblings 按HTML文本顺序的后续所有平行节点标签
.previous_siblings 按HTML文本顺序的前面所有平行节点标签

标签树的上行遍历:

.parent / .parents

信息提取方法:

方法 说明 属性
<>.find_all(name, attrs, recursive, string, **kwargs) 返回一个列表类型,存储查找的结果 name: 对标签名称的检索字符串;attrs: 对标签属性值的检索字符串,可标注属性检索;recursive: 是否对子孙全部检索,默认为 True;string: 对<></>中字符串区域的检索字符串;
(..) 等价于.find_all(..)
soup(..) 等价于 soup.find_all(..)
以下为扩展方法,参数同 find_all
find() 搜索且只返回一个结果
find_parents() 在先辈节点中搜索,返回列表类型
find_parent() 在先辈节点中搜索,返回字符串
find_next_siblings() 在后续平行节点汇总搜索,返回列表类型
find_next_siblings() 在后续平行节点汇总搜索,返回字符串
find_previous_siblings() 在前序平行节点汇总搜索,返回列表类型
find_previous_sibling() 在前序平行节点汇总搜索,返回字符串
文章作者: koral
文章链接: http://luokaiii.github.io/2020/10/22/爬虫/2.bs/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自