您现在的位置是:主页 > news > 北京网站设计策划公司/十大门户网站

北京网站设计策划公司/十大门户网站

admin2025/5/18 5:12:33news

简介北京网站设计策划公司,十大门户网站,网站建设,外卖软件开发大概多少钱find_all( )方法续讲 上一节我们介绍了find_all( )方法,它是查询所有符合条件的元素的,我们传入一些属性和文本进行,就可以得到符合条件的元素,它的功能十分强大,我们也介绍了它的API:find_all(name. attrs…

北京网站设计策划公司,十大门户网站,网站建设,外卖软件开发大概多少钱find_all( )方法续讲 上一节我们介绍了find_all( )方法,它是查询所有符合条件的元素的,我们传入一些属性和文本进行,就可以得到符合条件的元素,它的功能十分强大,我们也介绍了它的API:find_all(name. attrs…

find_all( )方法续讲

上一节我们介绍了find_all( )方法,它是查询所有符合条件的元素的,我们传入一些属性和文本进行,就可以得到符合条件的元素,它的功能十分强大,我们也介绍了它的API:find_all(name. attrs, recusive, text, **kwargs)

1.attrs

上一节中,我们详细介绍了依靠根据节点名来查询,这一节我们讲介绍根据一些属性来查询,示例如下:

91529822720e0cf3fd01075b3cf6961bbc09aad4.png?token=d3c5e0b87e45a348df04c2090d8a04e3&s=29C2A3489AA4936C4E55A40F0300E0C2

运行结果如下:

d058ccbf6c81800a1072b654858557fe838b470c.png?token=416595f473d5a8c86e73f72e4e2573ce&s=6BC21366EEE8FB740CD8F50F0300E0C1

这里查询的时候传入的是attrs参数,参数的类型是字典类型。比如,要查询id为list-1的节点,可以传入attrs={'id':'list-1'}的查询条件,得到的结果是列表形式,包含的内容就是符合id为list-1的所有节点。在上面的例子中,符合条件的元素个数是1,所以结果长度是为1的列表。

对于一些常用的属性,比如id和class等,我们可以不用attrs来传递。比如,要查询id为list-1的节点,可以直接传入id这个参数。还是上面的文本,我们换一种方式来查询:

f2deb48f8c5494ee35690f581b4584fa98257e58.png?token=87bbe4253c8f0f709b9d77d80b5b920d&s=2AD2A3481AA4B36E0CFDA50B0300E0C2

运行结果如下:

91529822720e0cf359a563d43cf6961bbf09aa87.png?token=99e4f0af41a27388ea37385f62697106&s=2BC213664EA6B7745EDD950B0300E0C1

这里直接传入id='list-1',就可以查询id为list-1的节点元素了。而对于class来说,由于class在python中是一个关键字,所以后面需要加上一个下划线,即class_='element',返回的结果依然还是Tag组成的列表。

2.text

text参数可以用来匹配节点的文本,传入的形式可以是字符串,可以是正则表达式对象,示例如下:

b3b7d0a20cf431adfe84d3bf7f86c8ab2fdd9812.png?token=e79b11ffe699da49b8315f15f814af88&s=68C2A3445BA4BF724C55400F0300E0C2

运行结果如下:

71cf3bc79f3df8dcbbb97ac8f9a1168f46102813.png?token=8a366e4b7956852b6ec3fe25628604c0&s=6BC21366CDAEBF701EF8950B0300E0C1

这里有两个a节点,其内部包含文本信息。这里在find_all( )方法中传入text参数,该参数为正则表达式对象,结果返回所有匹配正则表达式的节点文本组成的列表。

find( )

除了前面的find_all( )方法,还有find( )方法,只不过后者返回的是单个元素,也就是第一个匹配的元素,而前者返回的是所有匹配的元素组成的列表。示例如下:

b8389b504fc2d5620c2b8667d1a1f4eb77c66c49.png?token=0a68f6c6c408331d11372da7809f9a51&s=2AC2A3489AA5B37C4C55A00F030070C3

运行结果如下:

14ce36d3d539b60020859283dce0512ec75cb7eb.png?token=2e55a8019729fdac140f0193971adfbf&s=49E213679AA3E3744C79F40F0300E0C1

这里的返回结果不再是列表形式,而是第一个匹配的节点元素,类型依然是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( ):前面返回节点前所有符合条件的节点,后者返回第一个符合条件的节点。