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 获取兄弟节点相关推荐

  1. 16 `bs对象.节点名div.属性contents` children descendants 获取子节点 子孙节点

    16 bs对象.节点名div.属性contents children descendants 获取子节点 子孙节点 文章目录 16 `bs对象.节点名div.属性contents` children ...

  2. jquery兄弟标签_jquery如何获取兄弟节点?

    jquery如何获取兄弟节点?下面本篇文章就来给大家介绍一下使用jquery获取兄弟节点的方法.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. jquery获取兄弟节点的方法sibl ...

  3. jQuery.获取兄弟节点

    获取兄弟节点 方法 说明 siblings() 选取所有兄弟节点 next() 选取后面的兄弟节点 nextAll() 选取所有后面的兄弟节点 nextUntil() 选取所有后面的兄弟节点,但不包括 ...

  4. jquery获取兄弟节点

    jquery如何获取某一个兄弟节点 $('#id').siblings() 当前元素所有的兄弟节点 $('#id').prev() 当前元素前一个兄弟节点 $('#id').prevAll() 当前元 ...

  5. jq获取兄弟节点_jquery 获取元素(父节点,子节点,兄弟节点)

    一, js 获取元素(父节点,子节点,兄弟节点) var test = document.getElementById("test"); var parent = test.par ...

  6. jq获取兄弟节点_jQuery 获取兄弟元素的几种方法

    jQuery 获取兄弟元素的几种方法. 获取指定元素的兄弟元素时,可以使用adjacent sibling combinator (+),其中+的两侧内容都是selector expression. ...

  7. html 获得文本节点,JavaScript获取节点——获取文本节点

    0.前言 上一章讲了如何获取获取标签(元素)节点,这一节来和大家说一下如何获取属性节点. 我还是用代码来讲解: 获取属性节点 var jsInput = document.getElementById ...

  8. js 获取元素所有兄弟节点实例

    现在在js中要获取兄弟节点有两种常用的方法,一种是利用js来遍历,另一种是利用jquery来获取,下面小编来给大家介绍一下. 比如一个ul里面有10个li,而第3个li上有特殊的样式(比如颜色为红色, ...

  9. JS获取子节点、父节点和兄弟节点的方法实例总结

    本文实例讲述了JS获取子节点.父节点和兄弟节点的方法.分享给大家供大家参考,具体如下: 一.js获取子节点的方式 1. 通过获取dom方式直接获取子节点 其中test的父标签id的值,div为标签的名 ...

最新文章

  1. 【C++】explicit关键字
  2. 检查传递给Bash脚本的参数数量
  3. 页面是可以这样设计的
  4. php host头攻击,Apache/Nginx中Host头攻击的一些差异
  5. 解决vc2008 utf8中文字符串报错 C2001常量中有换行符
  6. surefire 拉起 junit 单元测试类 源码阅读(一)
  7. 检测Product 或者Object是否被IBASE 引用的report
  8. 数学天桥之中值定理|北京有文化的天桥
  9. 支付宝的个人捐赠功能
  10. Linux安装Django
  11. Java实现QQ机器人
  12. 海思3559万能平台搭建:YUV422的踩坑记录
  13. 为什么大多公司不要培训班出来的JAVA程序员?
  14. EasyGUI-6:文件目录和异常
  15. WPF编程宝典--控件
  16. outsystems刚做项目时的注意点-划重点
  17. 如何在电脑上剪辑视频?自用多年的软件分享
  18. 告别流氓播放器不让截屏,win10自带截屏快捷键
  19. Java Swing(二)按钮点击事件处理ActionListener
  20. Vue+element-ui实现表格数据渲染+分页

热门文章

  1. 现代飞机模拟显控系统软件测试平台ETest的设计
  2. 阿里图标素材在vuecli中的使用(.svg方式)
  3. python精通 epub_《跟老齐学Python:从入门到精通》齐伟(编著)epub+mobi+azw3
  4. 智能网联汽车信息安全风险分析及实践探讨
  5. 最全iOS 上架指南
  6. Cache清除缓存数据
  7. VMware虚拟机中Ubuntu忘记密码的解决办法
  8. 不可不知的方法论-测试思维之“薛定谔的猫”
  9. 计算机应用大专生简历,计算机应用大专生简历
  10. Two-Stream Convolutional Networks for Action Recognition in Videos算法笔记