您现在的位置是:主页 > news > 北京网站设计策划公司/十大门户网站
北京网站设计策划公司/十大门户网站
admin2025/5/18 5:12:33【news】
简介北京网站设计策划公司,十大门户网站,网站建设,外卖软件开发大概多少钱find_all( )方法续讲 上一节我们介绍了find_all( )方法,它是查询所有符合条件的元素的,我们传入一些属性和文本进行,就可以得到符合条件的元素,它的功能十分强大,我们也介绍了它的API:find_all(name. attrs…
find_all( )方法续讲
上一节我们介绍了find_all( )方法,它是查询所有符合条件的元素的,我们传入一些属性和文本进行,就可以得到符合条件的元素,它的功能十分强大,我们也介绍了它的API:find_all(name. attrs, recusive, text, **kwargs)
1.attrs
上一节中,我们详细介绍了依靠根据节点名来查询,这一节我们讲介绍根据一些属性来查询,示例如下:
运行结果如下:
这里查询的时候传入的是attrs参数,参数的类型是字典类型。比如,要查询id为list-1的节点,可以传入attrs={'id':'list-1'}的查询条件,得到的结果是列表形式,包含的内容就是符合id为list-1的所有节点。在上面的例子中,符合条件的元素个数是1,所以结果长度是为1的列表。
对于一些常用的属性,比如id和class等,我们可以不用attrs来传递。比如,要查询id为list-1的节点,可以直接传入id这个参数。还是上面的文本,我们换一种方式来查询:
运行结果如下:
这里直接传入id='list-1',就可以查询id为list-1的节点元素了。而对于class来说,由于class在python中是一个关键字,所以后面需要加上一个下划线,即class_='element',返回的结果依然还是Tag组成的列表。
2.text
text参数可以用来匹配节点的文本,传入的形式可以是字符串,可以是正则表达式对象,示例如下:
运行结果如下:
这里有两个a节点,其内部包含文本信息。这里在find_all( )方法中传入text参数,该参数为正则表达式对象,结果返回所有匹配正则表达式的节点文本组成的列表。
find( )
除了前面的find_all( )方法,还有find( )方法,只不过后者返回的是单个元素,也就是第一个匹配的元素,而前者返回的是所有匹配的元素组成的列表。示例如下:
运行结果如下:
这里的返回结果不再是列表形式,而是第一个匹配的节点元素,类型依然是Tag类型。
另外,还有许多查询方法,其用法与前面介绍的find_all( )、find( )方法完全相同,只不过查询范围不同,这里简单地对其进行说明:
find_parents( )和find_parent( ):前者返回所有祖先节点,后者返回直接父节点find_next_siblings( )和find_next_sibling( ):前者返回后面所有的兄弟节点,后者返回后面第一个兄弟节点。find_previous_siblings( )和find_previous_sibling( ):前者返回前面所有的兄弟节点,后者返回前面第一个兄弟节点。find_all_next( )和find_next( ):前者返回节点后所有符合条件的节点,后者返回第一个符合条件的节点。find_all_previous( )和find_previous( ):前面返回节点前所有符合条件的节点,后者返回第一个符合条件的节点。