BeautifulSoup 文档的搜索

find_all( name , attrs , recursive , string , **kwargs )

find_all() 方法搜索当前tag的所有tag子节点,并判断是否符合过滤器的条件

  • name 参数
    name 参数可以查找所有名字为 name 的tag,字符串对象会被自动忽略掉
    1.传字符串
soup.find_all('p')
#[<p class="a"> dsafds</p>]

2.传正则表达式

import re
for tag in soup.find_all(re.compile("^b")):
    print(tag.name)

3.传列表

soup.find_all(['a','b'])

4.传 True
True 可以匹配任何值,下面代码查找到所有的tag,但是不会返回字符串节点
5.方法

  • attrs 参数
    1.查找属性
soup.find_all('p',"pclass")
#[<p class="pclass"> text</p>]

2.直接id查找

soup.find_all(id='link2')

3.正则查找

import re
soup.find_all(id=re.compile("link"))
  • recursive

默认true 如果只想搜索tag的直接子节点,可以使用参数 recursive=False .

  • string

对标签属性值的检索字符串,标示属性检索

推荐阅读更多精彩内容