python+find_all函数_BeautifulSoup库之find_all函数

本文介绍了BeautifulSoup库的使用,特别是find_all函数。它用于遍历和搜索HTML文档树,通过标签名、属性值甚至正则表达式进行查找。文章详细讲解了Tag对象的属性、BeautifulSoup对象的特性、NavigableString对象的处理以及Comment对象。同时,还探讨了节点间的父子、兄弟关系,如.parent、.children和.next_sibling等。
摘要由CSDN通过智能技术生成

BeautifulSoup将复杂的HTML文档转换成一个复杂的树形结构.每个节点都是Python对象.所有对象可以归纳为四种:Tag , NavigableString , BeautifulSoup , Comment .

1.Tag对象最重要的属性:Name:标签的名字;attributes:属性(用class指代)

2.BeautifulSoup 对象表示的是一个文档的全部内容.大部分时候,可以把它当作 Tag 对象,它支持 遍历文档树 和 搜索文档树 中描述的大部分的方法.因为 BeautifulSoup 对象并不是真正的HTML或XML的tag,所以它没有name和attribute属性.但有时查看它的 .name 属性是很方便的,所以 BeautifulSoup 对象包含了一个值为 “[document]” 的特殊属性 .name

3.字符串常被包含在tag内.Beautiful Soup用 NavigableString 类来包装tag中的字符串,如果想在Beautiful Soup之外使用 NavigableString 对象,需要调用 unicode() 方法,将该对象转换成普通的Unicode字符串,否则就算Beautiful Soup已方法已经执行结束,该对象的输出也会带有对象的引用地址.这样会浪费内存.

4.Comment 对象是一个特殊类型的 NavigableString 对象,用来完成文本注释.

既然BeautifulSoup将html文档转换为复杂的树形结构,然后来介绍如何遍历html文档树:

子节点:.contents将子节点以列表的方式输出(含内容);.children返回子节点的列表生成器,可以遍历输出;contents和children只查找第一个子节点,而.descendants可对所有子节点进行递归循环;

父节点:.parent 属性来获取某个标签或字符串的父节点;.parents 属性可以递归得到元素的所有父辈节点

兄弟节点:.next_sibling获取

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值