python beautifulsoap find all,python beautifulsoup

  python beautifulsoap find all,python beautifulsoup

  查找全部()查找全部(名称,属性,递归,文本,* *夸脱)

  查找全部()方法搜索当前标签的所有标签子节点,并判断是否符合过滤器的条件。这里有几个例子:

  汤。find _ all(标题)#[标题睡鼠的故事/title]soup.find_all(p , title )#[p class= title b睡鼠的故事汤。find _ all( a )#[a class= sis ter rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel=外部不跟随rel他们的名字是\n 有几个方法很相似,还有几个方法是新的,参数中的文本和编号是什么含义?为什么find_all("p "," title ")返回的是半铸钢钢性铸铁(Cast Semi-Steel)类为"标题"的

  标签?我们来仔细看一下查找全部()的参数

  名字参数名字参数可以查找所有名字为名字的标签,字符串对象会被自动忽略掉。

  简单的用法如下:

  汤。find _ all(标题)#[标题睡鼠的故事/标题]重申:搜索名字参数的值可以使任一类型的过滤器,字符窜,正则表达式,列表,方法或是没错。

  关键字参数如果一个指定名字的参数不是搜索内置的参数名,搜索时会把该参数当作指定名字标签的属性来搜索,如果包含一个名字为编号的参数,漂亮的汤会搜索每个标签的" id "属性。

  汤。find _ all(id= link 2 )#[a class= sis ter rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow href= http://示例。com/Lacie id= link 2 Lacie/a]如果传入超链接参数,漂亮的汤会搜索每个标签的" href "属性:

  汤。find _ all(href=re。compile( Elsie ))#[a class= sis ter rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow href= external no follow 示例。com/Elsie id= link 1 Elsie/a]搜索指定名字的属性时可以使用的参数值包括字符串,正则表达式,列表,真的。

  下面的例子在文档树中查找所有包含编号属性的标签,无论编号的值是什么:

  汤。find _ all(id=True)#[a class= s ITER rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow href= external no follow 示例。 id= link 1 Elsie/a,# a class= sis rel= external no follow rel= rel=外部没有跟随 rel=使用多个指定名字的参数可以同时过滤标签的多个属性:

  汤。find _ all(href=re。compile( elsie ),id= link 1 )#[a class= sis ter rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow href= 3http://示例。com/elsie id= three/a]有些标签属性在搜索不能使用,比如HTML5中的数据-*属性:

  data _ soup=美汤( div data-foo= value foo!/div’)数据_汤。find _ all(data-foo= value )#语法错误:关键字不能是表达式但是可以通过查找全部()方法的属性列表参数定义一个字典参数来搜索包含特殊属性的标签:

  数据_汤。find _ all(attrs={ data-foo : value })#[div data-foo= value foo!/div]按半铸钢钢性铸铁(铸造半钢)搜索按照半铸钢钢性铸铁(铸造半钢)类名搜索标签的功能非常实用,但标识半铸钢钢性铸铁(铸造半钢)类名的关键字班级在计算机编程语言中是保留字,使用班级做参数会导致语法错误。从美味的汤的4.1.1版本开始,可以通过class_参数搜索有指定半铸钢钢性铸铁(铸造半钢)类名的标签:

  soup.find_all(a ,class _= sis ter )#[a class= sis ter rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow href= 3358示例。 link 1 Elsie/a,# a class= sis rel=外部没有跟随 rel=外部不参数同样接受不同类型的过滤器,字符串,正则表达式,方法或真实:

  汤。find _ all(class _=re。编译( ITL )#[p class= title b睡鼠的故事/b/p]def has _ six _ characters(CSS _ class):返回CSS _ class not None和len(CSS _ class)==6 soup。find _ all(class _=has _ six _ characters)#[a class= sis ter rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel=外部没有跟随 rel=外部不跟随rel的班级属性是多值属性。按照半铸钢钢性铸铁(铸造半钢)类名搜索标签时,可以分别搜索标签中的每个半铸钢钢性铸铁(铸造半钢)类名:

  CSS _ soup=美汤( p class= body strike out /p )CSS _ soup。find _ all( p ,class _= strike out )#[p class= body strike out /p]CSS _ soup。find _ all( p ,class _= body )#[p class= body strike out /p]搜索班级属性时也可以通过半铸钢钢性铸铁(铸造半钢)值完全匹配:

  css_soup.find_all(p ,class _= body strike out )#[p class= body strike out /p]完全匹配班级的值时,如果半铸钢钢性铸铁(铸造半钢)类名的顺序与实际不符,将搜索不到结果:

  soup.find_all(a ,attrs={ class : sis ter })#[a class= sis ter rel=外部不跟随 rel=外部不跟随 rel=外部不跟随 rel=外部不跟随 rel=外部不跟随 rel=外部不跟随 rel=外部不跟随 rel=外部不跟随 rel=外部不跟随 href=外部不跟随示例。com/Elsie id= link 1 Elsie/a,#a class=妹妹参数通过文本参数可以搜搜文档中的字符串内容。与名字参数的可选值一样,文本参数接受字符串,正则表达式,列表,真的。看例子:

  汤。find _ all(text= Elsie )#[u Elsie ]汤。find _ all(text=[ Tillie , Elsie , Lacie])#[uElsie ,uLacie ,u Tillie ]汤。find _ all(text=re。编译(睡鼠)[u 睡鼠的故事,u 睡鼠的故事]def is _ the _ only _ string _ within _ a _ tag(s): 如果该字符串是其父字符串的唯一子字符串,则返回True 返回(s==s . parent。串)汤。find _ all(text=is _ the _ only _ string _ within _ a _ tag)#[u 睡鼠的故事,u 睡鼠的故事,你埃尔西,你拉西,你蒂利,你.]虽然文本参数用于搜索字符串,还可以与其它参数混合使用来过滤标签。美味的汤会找到。线方法与文本参数值相符的标签。下面代码用来搜索内容里面包含"埃尔西"的标签:

  soup.find_all(a ,text= Elsie )#[a rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow href= external no follow 示例。com/Elsie class= sis id= link 1 Elsie/a]限制参数查找全部()方法返回全部的搜索结构,如果文档树很大那么搜索会很慢。如果我们不需要全部结果,可以使用限制参数限制返回结果的数量。效果与结构化查询语言中的限制关键字类似,当搜索到的结果数量达到限制的限制时,就停止搜索返回结果。

  文档树中有3个标签符合搜索条件,但结果只返回了2个,因为我们限制了返回数量:

  soup.find_all(a ,limit=2)#[a class= sis ter rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow rel= external no follow href= 3358示例。 id= link 1 Elsie/a,# a class= sis rel= rel= external no follow 参数调用标签的查找全部()方法时,漂亮的汤会检索当前标签的所有子孙节点,如果只想搜索标签的直接子节点,可以使用参数递归=假。

  一段简单的文档:

  睡鼠的故事/标题/标题.是否使用递归的参数的搜索结果:

  汤。html。find _ all(标题)#[标题睡鼠的故事/title]汤。html。find _ all( title ,recursive=False)#[]像调用查找全部()一样调用标签

  查找全部()几乎是美味的汤中最常用的搜索方法,所以我们定义了它的简写方法。美丽的声音对象和标签对象可以被当作一个方法来使用,这个方法的执行结果与调用这个对象的查找全部()方法相同,下面两行代码是等价的:

  soup.find_all(a )汤(“甲”)这两行代码也是等价的:

  soup.title.find_all(text=True)欢迎关注,一起学习。有用点个赞吧!

  公众号:一个甜甜的大橙子

  知乎:一个甜甜的大橙子

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: