18. `bs对象.节点名.next_sibling` previous_sibling 获取兄弟节点
18. bs对象.节点名.next_sibling
previous_sibling 获取兄弟节点
文章目录
- 18. `bs对象.节点名.next_sibling` previous_sibling 获取兄弟节点
- 1. `bs对象.节点名.next_sibling` 获取后一个兄弟节点
- 2. `bs对象.节点名.next_siblings` 获取后面的所有兄弟节点
- 3. `bs对象.节点名.previous_sibling` 获取前一个兄弟节点
- 4. `bs对象.节点名.previous_siblings` 获取前面的所有兄弟节点
- 5. 总结
1. bs对象.节点名.next_sibling
获取后一个兄弟节点
sibling [ˈsɪblɪŋ]:兄弟。
语法格式:bs对象.节点名.next_sibling
返回值:节点对象。
# 声明一个html_str字符串变量,存储部分HTML代码
html_str = """
<html><head><meta charset="utf-8"><title>古诗2首</title></head><body><div class="poems" id="section1"><h2>如梦令</h2><h3>李清照<span>(宋)</span></h3><p>试问卷帘人</p><p>却道海棠依旧</p><p>知否?知否?</p><p>应是绿肥红瘦</p></div><div class="poems" id="section2"><h2>无题</h2><h3>佚名</h3><p>本是青灯不归客</p><p>却因浊酒留风尘</p><p>终是庄周梦了蝶</p><p>你是恩赐也是劫</p></div></body></html>
"""
# 1. 从bs4解析库导入BeautifulSoup类用于解析数据
from bs4 import BeautifulSoup# 2.1 BeautifulSoup类(要解析的字符串,解析器)
# 2.2 传入要解析的字符串html_str和解析器lxml,实例化类得到一个BeautifulSoup对象
bs_duixiang = BeautifulSoup(html_str, 'lxml')print("步骤1:bs对象.节点名p——获取第1个p节点:")
print(bs_duixiang.p,'\n')print("步骤2.1:bs对象.节点名p.next_sibling——获取第2个p节点:")
print(bs_duixiang.p.next_sibling,'\n')print("步骤2.2:获取到的数据类型为tag对象:")
print(type(bs_duixiang.p.next_sibling),'\n')
【终端输出】
步骤1:bs对象.节点名p——获取第1个p节点:
<p>试问卷帘人</p> 步骤2.1:bs对象.节点名p.next_sibling——获取第2个p节点:
<p>却道海棠依旧</p> 步骤2.2:获取到的数据类型为tag对象:
<class 'bs4.element.Tag'>
2. bs对象.节点名.next_siblings
获取后面的所有兄弟节点
语法格式:bs对象.节点名.next_siblings
返回值:生成器。
取值方法:
方法1:for循环从生成器中取值for i,child in enumerate(bs_duixiang.p.next_siblings)
方法2:用list函数从生成器中取值list(enumerate(bs_duixiang.p.next_siblings))
# 声明一个html_str字符串变量,存储部分HTML代码
html_str = """
<html><head><meta charset="utf-8"><title>古诗2首</title></head><body><div class="poems" id="section1"><h2>如梦令</h2><h3>李清照<span>(宋)</span></h3><p>试问卷帘人</p><p>却道海棠依旧</p><p>知否?知否?</p><p>应是绿肥红瘦</p></div><div class="poems" id="section2"><h2>无题</h2><h3>佚名</h3><p>本是青灯不归客</p><p>却因浊酒留风尘</p><p>终是庄周梦了蝶</p><p>你是恩赐也是劫</p></div></body></html>
"""
# 1. 从bs4解析库导入BeautifulSoup类用于解析数据
from bs4 import BeautifulSoup# 2.1 BeautifulSoup类(要解析的字符串,解析器)
# 2.2 传入要解析的字符串html_str和解析器lxml,实例化类得到一个BeautifulSoup对象
bs_duixiang = BeautifulSoup(html_str, 'lxml')print("步骤1:bs对象.节点名p——获取第1个p节点:")
print(bs_duixiang.p,'\n')print("步骤2.1:bs对象.节点名p.next_siblings——获取第1个p节点后面的所有兄弟节点:")
print(bs_duixiang.p.next_siblings,'\n')print("步骤2.2:获取到的数据类型为生成器:")
print(type(bs_duixiang.p.next_siblings),'\n')print("取值方法1:利用for循环从生成器中取值,i表示元素序号,child表示元素:")
for i, child in enumerate(bs_duixiang.p.next_siblings) :print(i, child)print('\n')
print("取值方法2:用list函数从生成器中取值,得到的是列表:")
print(list(enumerate(bs_duixiang.p.next_siblings)))
【终端输出】
步骤1:bs对象.节点名p——获取第1个p节点:
<p>试问卷帘人</p> 步骤2.1:bs对象.节点名p.next_siblings——获取第1个p节点后面的所有兄弟节点:
<generator object PageElement.next_siblings at 0x000001C8C4BD46D0> 步骤2.2:获取到的数据类型为生成器:
<class 'generator'> 取值方法1:利用for循环从生成器中取值,i表示元素序号,child表示元素:
0 <p>却道海棠依旧</p>
1 <p>知否?知否?</p>
2 <p>应是绿肥红瘦</p>取值方法2:用list函数从生成器中取值,得到的是列表:
[(0, <p>却道海棠依旧</p>), (1, <p>知否?知否?</p>), (2, <p>应是绿肥红瘦</p>)]
3. bs对象.节点名.previous_sibling
获取前一个兄弟节点
previous [ˈpriːviəs]:前面的。
语法格式:bs对象.节点名.previous_sibling
返回值:节点对象。
# 声明一个html_str字符串变量,存储部分HTML代码
html_str = """
<html><head><meta charset="utf-8"><title>古诗2首</title></head><body><div class="poems" id="section1"><h2>如梦令</h2><h3>李清照<span>(宋)</span></h3><p>试问卷帘人</p><p>却道海棠依旧</p><p>知否?知否?</p><p>应是绿肥红瘦</p></div><div class="poems" id="section2"><h2>无题</h2><h3>佚名</h3><p>本是青灯不归客</p><p>却因浊酒留风尘</p><p>终是庄周梦了蝶</p><p>你是恩赐也是劫</p></div></body></html>
"""
# 1. 从bs4解析库导入BeautifulSoup类用于解析数据
from bs4 import BeautifulSoup# 2.1 BeautifulSoup类(要解析的字符串,解析器)
# 2.2 传入要解析的字符串html_str和解析器lxml,实例化类得到一个BeautifulSoup对象
bs_duixiang = BeautifulSoup(html_str, 'lxml')print("步骤1:bs对象.节点名p——获取第1个p节点:")
print(bs_duixiang.p,'\n')print("步骤2.1:bs对象.节点名.previous_siblingg——获取第p节点前面的h3节点:")
print(bs_duixiang.p.previous_sibling,'\n')print("步骤2.2:获取到的数据类型为tag对象:")
print(type(bs_duixiang.p.previous_sibling),'\n')
【终端输出】
步骤1:bs对象.节点名p——获取第1个p节点:
<p>试问卷帘人</p> 步骤2.1:bs对象.节点名.previous_siblingg——获取第p节点前面的h3节点:
<h3>李清照<span>(宋)</span></h3> 步骤2.2:获取到的数据类型为tag对象:
<class 'bs4.element.Tag'>
4. bs对象.节点名.previous_siblings
获取前面的所有兄弟节点
语法格式:bs对象.节点名.previous_siblings
返回值:生成器。
取值方法:
方法1:for循环从生成器中取值for i,child in enumerate(bs_duixiang.p.previous_siblings)
方法2:用list函数从生成器中取值list(enumerate(bs_duixiang.p.previous_siblings))
# 声明一个html_str字符串变量,存储部分HTML代码
html_str = """
<html><head><meta charset="utf-8"><title>古诗2首</title></head><body><div class="poems" id="section1"><h2>如梦令</h2><h3>李清照<span>(宋)</span></h3><p>试问卷帘人</p><p>却道海棠依旧</p><p>知否?知否?</p><p>应是绿肥红瘦</p></div><div class="poems" id="section2"><h2>无题</h2><h3>佚名</h3><p>本是青灯不归客</p><p>却因浊酒留风尘</p><p>终是庄周梦了蝶</p><p>你是恩赐也是劫</p></div></body></html>
"""
# 2.1 BeautifulSoup类(要解析的字符串,解析器)
# 2.2 传入要解析的字符串html_str和解析器lxml,实例化类得到一个BeautifulSoup对象
bs_duixiang = BeautifulSoup(html_str, 'lxml')print("步骤1:bs对象.节点名p——获取第1个p节点:")
print(bs_duixiang.p,'\n')print("步骤2.1:bs对象.节点名p.previous_siblings——获取第1个p节点前面的所有兄弟节点:")
print(bs_duixiang.p.previous_siblings,'\n')print("步骤2.2:获取到的数据类型为生成器:")
print(type(bs_duixiang.p.previous_siblings),'\n')print("取值方法1:利用for循环从生成器中取值,i表示元素序号,child表示元素:")
for i,child in enumerate(bs_duixiang.p.previous_siblings) :print(i, child)print('\n')
print("取值方法2:用list函数从生成器中取值,得到的是列表:")
print(list(enumerate(bs_duixiang.p.previous_siblings)))
【终端输出】
步骤1:bs对象.节点名p——获取第1个p节点:
<p>试问卷帘人</p> 步骤2.1:bs对象.节点名p.previous_siblings——获取第1个p节点前面的所有兄弟节点:
<generator object PageElement.previous_siblings at 0x000001C8C4B05900> 步骤2.2:获取到的数据类型为生成器:
<class 'generator'> 取值方法1:利用for循环从生成器中取值,i表示元素序号,child表示元素:
0 <h3>李清照<span>(宋)</span></h3>
1 <h2>如梦令</h2>取值方法2:用list函数从生成器中取值,得到的是列表:
[(0, <h3>李清照<span>(宋)</span></h3>), (1, <h2>如梦令</h2>)]
5. 总结
18. `bs对象.节点名.next_sibling` previous_sibling 获取兄弟节点相关推荐
- 16 `bs对象.节点名div.属性contents` children descendants 获取子节点 子孙节点
16 bs对象.节点名div.属性contents children descendants 获取子节点 子孙节点 文章目录 16 `bs对象.节点名div.属性contents` children ...
- jquery兄弟标签_jquery如何获取兄弟节点?
jquery如何获取兄弟节点?下面本篇文章就来给大家介绍一下使用jquery获取兄弟节点的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. jquery获取兄弟节点的方法sibl ...
- jQuery.获取兄弟节点
获取兄弟节点 方法 说明 siblings() 选取所有兄弟节点 next() 选取后面的兄弟节点 nextAll() 选取所有后面的兄弟节点 nextUntil() 选取所有后面的兄弟节点,但不包括 ...
- jquery获取兄弟节点
jquery如何获取某一个兄弟节点 $('#id').siblings() 当前元素所有的兄弟节点 $('#id').prev() 当前元素前一个兄弟节点 $('#id').prevAll() 当前元 ...
- jq获取兄弟节点_jquery 获取元素(父节点,子节点,兄弟节点)
一, js 获取元素(父节点,子节点,兄弟节点) var test = document.getElementById("test"); var parent = test.par ...
- jq获取兄弟节点_jQuery 获取兄弟元素的几种方法
jQuery 获取兄弟元素的几种方法. 获取指定元素的兄弟元素时,可以使用adjacent sibling combinator (+),其中+的两侧内容都是selector expression. ...
- html 获得文本节点,JavaScript获取节点——获取文本节点
0.前言 上一章讲了如何获取获取标签(元素)节点,这一节来和大家说一下如何获取属性节点. 我还是用代码来讲解: 获取属性节点 var jsInput = document.getElementById ...
- js 获取元素所有兄弟节点实例
现在在js中要获取兄弟节点有两种常用的方法,一种是利用js来遍历,另一种是利用jquery来获取,下面小编来给大家介绍一下. 比如一个ul里面有10个li,而第3个li上有特殊的样式(比如颜色为红色, ...
- JS获取子节点、父节点和兄弟节点的方法实例总结
本文实例讲述了JS获取子节点.父节点和兄弟节点的方法.分享给大家供大家参考,具体如下: 一.js获取子节点的方式 1. 通过获取dom方式直接获取子节点 其中test的父标签id的值,div为标签的名 ...
最新文章
- 【C++】explicit关键字
- 检查传递给Bash脚本的参数数量
- 页面是可以这样设计的
- php host头攻击,Apache/Nginx中Host头攻击的一些差异
- 解决vc2008 utf8中文字符串报错 C2001常量中有换行符
- surefire 拉起 junit 单元测试类 源码阅读(一)
- 检测Product 或者Object是否被IBASE 引用的report
- 数学天桥之中值定理|北京有文化的天桥
- 支付宝的个人捐赠功能
- Linux安装Django
- Java实现QQ机器人
- 海思3559万能平台搭建:YUV422的踩坑记录
- 为什么大多公司不要培训班出来的JAVA程序员?
- EasyGUI-6:文件目录和异常
- WPF编程宝典--控件
- outsystems刚做项目时的注意点-划重点
- 如何在电脑上剪辑视频?自用多年的软件分享
- 告别流氓播放器不让截屏,win10自带截屏快捷键
- Java Swing(二)按钮点击事件处理ActionListener
- Vue+element-ui实现表格数据渲染+分页
热门文章
- 现代飞机模拟显控系统软件测试平台ETest的设计
- 阿里图标素材在vuecli中的使用(.svg方式)
- python精通 epub_《跟老齐学Python:从入门到精通》齐伟(编著)epub+mobi+azw3
- 智能网联汽车信息安全风险分析及实践探讨
- 最全iOS 上架指南
- Cache清除缓存数据
- VMware虚拟机中Ubuntu忘记密码的解决办法
- 不可不知的方法论-测试思维之“薛定谔的猫”
- 计算机应用大专生简历,计算机应用大专生简历
- Two-Stream Convolutional Networks for Action Recognition in Videos算法笔记