一、搜索文档树
1.1 find_all(name,attrs,recursive,text,**kwargs)
(1)name参数
字符串过滤:会查找与字符串完全匹配的内容
正则表达式过滤:如果传入的是正则表达式,那么BeautifulSoup4会通过search()来匹配内容。
列表过滤:如果传入一个列表,BeautifulSoup4将会与列表中的任意元素匹配到的节点返回。
方法:传入一个方法,根据方法来匹配
(2)kwargs参数
(3)attrs参数
并不是所有的属性都可以使用上面这种方式进行搜索,比如HTML的data-*属性
t_list = bs.find_all(data-foo="value")
如果执行这段代码,将会报错。我们可以使用attrs参数,定义一个字典来搜索包含特殊属性的tag:
t_list = bs.find_all(attrs={"data-foo":"value"})
for item in t_list:
print(item)
(4)text参数
通过text参数可以搜索文档中的字符串内容,与name参数的可选值一样,text参数接受 字符串,正则表达式,列表。
当搜索text中的一些特殊属性时,同样也可以传入一个方法来达到目的。