python解析库-bs4


Beautiful Soup库

具有解析,遍历,维护“标签树”的功能的功能库

1
2
3
from bs4 import BeautifulSoup
demo = r.text
soup = BeautifulSoup(demo, 'html.parser') # 解析器可以是其它的

五种基本元素

tag, name, attributes, navigableString, comment

1
2
3
4
tag.标签名 # 得到标签
tag.name # 得到标签名
tag.attrs # 得到标签属性
comment # 标签内的字符串,注释部分,一种特殊的comment类型

非find的常用方法

1
2
3
4
5
soup.title
soup.标签名
soup.标签名.name
soup.标签名.parent.name
tag.attris['属性名'] # tag.attris['href'], tag.attris['.class']

标签树

标签树的下行遍历

1
2
3
tag.contents # 得到子节点列表
tag.children # 得到子节点的迭代类型
tag.descendents # 子孙节点的迭代类型

标签树的上行遍历

1
2
tag.parent # 父亲标签
tag.parents # 先辈标签的迭代类型

标签树的平行遍历

1
2
3
4
tag.next_sibling # 下一个平行节点
tag.next_siblings # 得到所有下一个平行节点的迭代类型
tag.previous_sibling # 上一个平行节点
tag.previous_siblings # 得到所有上一个平行节点的迭代类型

使soup更加规则

1
soup.prettify()

find_all()

1
2
3
4
# 接口
soup.find_all(name, attrs, recursive, String, kwarg**)
# recursive是否递归查询,默认为True
# String标签内的字符串
1
2
3
4
5
6
# 用正则表达式匹配符合对应名字的标签名
tags = soup.find_all(re.compile('xxx'))
for tag in tags:
print(tag.name)
# 标签内字符串检索
soup.find_all(String=re.compile('python'))

find()

find_parents()

find_parent()

find_next_sibling()

find_next_siblings()

find_previous_sibling()

find_previous_siblings()


本文标题:python解析库-bs4

文章作者:TTYONG

发布时间:2020年06月07日 - 20:06

最后更新:2022年03月06日 - 18:03

原始链接:http://tianyong.fun/%E5%B4%94%E5%BA%86%E6%89%8Dpython3%E7%88%AC%E8%99%AB-python%E8%A7%A3%E6%9E%90%E5%BA%93-bs4.html

许可协议: 转载请保留原文链接及作者。

多少都是爱
0%