find_all 函数
<>.find_all(name, attrs,recursive,string,**kwargs)
#name:对标签名称检索的字符串。
#attrs: 对标签属性值的检索字符串,可以标注属性检索。
#recursive: 是否对子孙节点搜索,默认为True。
#string: 对标签中间的字符串域检索(类似attrs与name)。
打印指定标签类型
import requests
from bs4 import BeautifulSoup
r = requests.get("https://python123.io/ws/demo.html")
demo = r.text
soup = BeautifulSoup(demo, "html.parser")
print(soup.find_all('a'))
循环打印所有标签名
for tag in soup.find_all(True):
print(tag.name)
借助正则实现精准指定
import re
for tag in soup.find_all(re.compile('b')):
print(tag.name)
指定标签属性
# 输出指定id为link1 的标签
print(soup.find_all(id='link1'))
也可以借助正则,实现部分信息的查找。
print(soup.find_all(id=re.compile('link')))
简写find_all
由于**.find_all()
函数使用非常频繁,因此设计者直接简化了该函数的饮用,我们可以直接使用BeautifulSoup解析后信息存储的变量。
soup.find_all()
等价于soup()
网友评论