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
对标签属性值的检索字符串,标示属性检索