html.find(‘div’,id = ‘nv’)
soup.findAll(‘a’,class_=“noresultRecommend img LOGCLICKDATA”)
步骤1:查询属性为id,属性值为link2的标签
soup.find_all(attrs={‘id’:‘link2’})
步骤1:查询属性为id,属性值为link2的标签:
[java学习网]
- find_all()方法的语法格式
find_all (name, attrs, kwargs, text, limit, recursive)
find_all()方法有6个参数:
【参数1】name:接收tag名称。
【参数2】attrs:参数接收属性的键值对字典。
【参数3】**kwargs:接收变量赋值形式的属性。注意class后的下划线:class_
【参数4】text:接收文本信息。
【参数5】limit:限制返回的标签数量。
【参数6】recursive:是否获取子孙节点。
————————————————
BeautifulSoup find、findall()多级索引详解(附例题)
BeautifulSoup库的安装:
命令行运行:
pip3 install beautifulsoup4
标准选择器
find_all()
find_all( name , attrs , recursive , text , **kwargs )
find_all() 方法搜索当前tag的所有tag子节点,并判断是否符合过滤器的条件
常用参数:
name:标签名,使用html标签名来索引
sb = soup.find_all('img')
atters
可根据标签名、属性、内容查找文档。
使用双属性来查找元素:
content = html.find(attrs = {'class':'p_opt','id':'card_1550_menu_content'})
注意find_all()方法返回的是一个列表!访问列表的内容需要使用下标:
content[n]
#注意下标从0开始
而访问列表元素的下一级元素则使用:.contents[n]来访问(也是从0开始的)
content[n].contents[m]
#注意下标从0开始
嵌套查询:
嵌套查询很常用:
例子:
ul = html.find_all('ul') #查找ul标签下的内容、嵌套选择
for li in ul:
print(li.find_all('li')) #打印多个ul中的每一个
find()
find(name, attrs, recursive, text, wargs)
find用法和findall一模一样,但是返回的是找到的第一个符合条件的内容输出。注意find()方法返回的不是列表,而是一个单个元素对象,想要访问该对象的子元素就直接使用.contents[n]即可,不需要再添加下表
————————————————
print("步骤1:使用kwargs获取class等于sister3的标签:")
print(bs_duixiang.find_all(class_='sister3'),'\n')
print("步骤2:使用attrs获取class等于sister3的标签:")
print(bs_duixiang.find_all(attrs={"class","sister3"})) #非指定标签的Class属性
————————————————
版权声明:本文为优快云博主「安迪python学习笔记」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_63986098/article/details/125693423
【温馨提示】
attrs中使用的是class
kwargs中使用的是class_
因为对于class是Python中的一个关键字,因此这里的class后要加一个下划线,即class_=‘sister3’。
html.find('div',id = 'nv') #指定标签的ID属性
soup.findAll('a',class_="noresultRecommend img LOGCLICKDATA") #指定标签的Class属性