多语言展示
当前在线:1177今日阅读:9今日分享:32

Python库详解之BeautifulSoup库的遍历文档树

BeautifulSoup模块是用来从HTML/XML等文件提取所需数据的Python库.模块定义了许多有效的方法,便于处理导航、搜索、修改分析树等功能.与re模块相比,实现相同的功能简便高效.下图是bs4模块定义的子模块以及BeautifulSoup模块定义的函数.下文将介绍如何遍历文档树.
工具/原料
1

ubuntu 16.04LTS系统

2

交互开发环境IPython 2.4.1

3

Python 2.7.12

方法/步骤
1

子节点概念:HTML文件中某个TagA可能包含多个字符串或其它的TagB,TagC,这些都是这个TagA的子节点.BeautifulSoup提供了许多操作和遍历子节点的函数.

2

通过对属性tag.children的调用,可以得到某个tag直接的子节点.如图所示:.children会返回一个迭代器,包含所有的子节点.

3

.descendants属性的使用,从上文看直接调用.children得到直接的子节点,如果用descendants属性,可以获取该tag的所有子孙节点.方法如下图所示:

4

属性.string,.strings和stripped_strings的区别如下图用例所示:如果tag有一个子节点,可以用.string;如果有多个子节点,可以用strings;如果输出的字符串中可能包含了很多空格或空行,使用 .stripped_strings 可以去除多余空白内容.

5

父节点概念:每个tag或字符串都有父节点:被包含在某个tag中,可以通过.parent属性来获取父节点.如下图用例所示:需要注意下图用例当tag=head时,它的父节点是html,也就是整个对象.

6

兄弟节点的概念:和一个节点同级的tag称为兄弟节点.注意:在同级中,第一个tag只有.next_sibling的属性,最后一个节点只有.previous_sibling的属性.

7

回退和前进的概念:testHTML解析器把这段字符串转换成一连串的事件: “打开”,”打开”,”打开”,读取字符串'test',关闭<title>,关闭<head>.以上描述可以通过以下的属性说明.next_element 和 .previous_element以及返回迭代器的属性:.next_elements 和 .previous_elements,如下图所示:</p></div></div><div class="ltitle"><span>注意事项</span></div><div class="lcon"><p>注意属性.next_element 和属性.next_sibling的区别.</p></div><div class="prev_next"> <div class="prev"> <span>上一篇:</span><a href="/eciat.html">python怎么安装excel需要的库</a> </div> <div class="next"> <span>下一篇:</span><a href="/eciav.html">Python库详解之os库--文件和目录操作(续2)</a> </div> </div> </div> <div class="appleccmw content-right"> <div class="listmore">推荐信息</div> <div class="send_list"> <ul> <li><a href="/echuh.html" title="声宝AM-PY36D/AU-PY36D型冷气机说明书:[3]"><span>1</span><h3>声宝AM-PY36D/AU-PY36D型冷气机说明书:[3]</h3></a></li> <li><a href="/echzu.html" title="Python库详解之random库"><span>2</span><h3>Python库详解之random库</h3></a></li> <li><a href="/echzv.html" title="Python库详解之heapq库"><span>3</span><h3>Python库详解之heapq库</h3></a></li> <li><a href="/echzw.html" title="Python库详解之os库"><span>4</span><h3>Python库详解之os库</h3></a></li> <li><a href="/echzx.html" title="python如何安装第三方库"><span>5</span><h3>python如何安装第三方库</h3></a></li> <li><a href="/echzy.html" title="python的random库应用讲解"><span>6</span><h3>python的random库应用讲解</h3></a></li> <li><a href="/echzz.html" title="python怎么安装已经下载的库,安装python库"><span>7</span><h3>python怎么安装已经下载的库,安装python库</h3></a></li> <li><a href="/eciaa.html" title="python怎么查看安装了哪些库?"><span>8</span><h3>python怎么查看安装了哪些库?</h3></a></li> <li><a href="/eciab.html" title="如何在windows上查看python安装了哪些库"><span>9</span><h3>如何在windows上查看python安装了哪些库</h3></a></li> <li><a href="/eciac.html" title="python的requests库的安装和使用"><span>10</span><h3>python的requests库的安装和使用</h3></a></li> <li><a href="/eciad.html" title="Python库之BeautifulSoup库的搜索文档树(续1)"><span>11</span><h3>Python库之BeautifulSoup库的搜索文档树(续1)</h3></a></li> <li><a href="/eciae.html" title="Python库详解之re库(续1)"><span>12</span><h3>Python库详解之re库(续1)</h3></a></li> <li><a href="/eciaf.html" title="Python库详解之Sets库"><span>13</span><h3>Python库详解之Sets库</h3></a></li> <li><a href="/eciag.html" title="Python中如何安装和删除第三方库"><span>14</span><h3>Python中如何安装和删除第三方库</h3></a></li> <li><a href="/eciah.html" title="python turtle库怎么使用?"><span>15</span><h3>python turtle库怎么使用?</h3></a></li> <li><a href="/eciai.html" title="如何在Python中添加库"><span>16</span><h3>如何在Python中添加库</h3></a></li> <li><a href="/eciaj.html" title="Python库详解之os.path库"><span>17</span><h3>Python库详解之os.path库</h3></a></li> <li><a href="/eciak.html" title="Python库详解之BeautifulSoup库"><span>18</span><h3>Python库详解之BeautifulSoup库</h3></a></li> <li><a href="/ecial.html" title="Python库详解之fileinput库"><span>19</span><h3>Python库详解之fileinput库</h3></a></li> <li><a href="/eciam.html" title="Python tkinter库安装方法"><span>20</span><h3>Python tkinter库安装方法</h3></a></li> <li><a href="/aqbej.html" title="人的体质分为哪九种以及各种体质的特点"><span>21</span><h3>人的体质分为哪九种以及各种体质的特点</h3></a></li> <li><a href="/aqbei.html" title="《暴雨》中文流程攻略第十一章"><span>22</span><h3>《暴雨》中文流程攻略第十一章</h3></a></li> <li><a href="/aqbeh.html" title="怎么看出自己是什么体质1"><span>23</span><h3>怎么看出自己是什么体质1</h3></a></li> <li><a href="/aqbeg.html" title="如何自测属于什么体质?"><span>24</span><h3>如何自测属于什么体质?</h3></a></li> <li><a href="/aqbef.html" title="李清照的三瘦是那三个"><span>25</span><h3>李清照的三瘦是那三个</h3></a></li> <li><a href="/aqbee.html" title="哈姆莱特经典独白(生存还是毁灭)赏析"><span>26</span><h3>哈姆莱特经典独白(生存还是毁灭)赏析</h3></a></li> <li><a href="/aqbed.html" title="你对自已的体质了解吗?:[1]体质测试表"><span>27</span><h3>你对自已的体质了解吗?:[1]体质测试表</h3></a></li> <li><a href="/aqbec.html" title="儿童暴风雨怎么画"><span>28</span><h3>儿童暴风雨怎么画</h3></a></li> <li><a href="/aqbeb.html" title="求保尔四次死里逃生的内容和意义"><span>29</span><h3>求保尔四次死里逃生的内容和意义</h3></a></li> <li><a href="/aqbea.html" title="如何在雨中保证开车安全"><span>30</span><h3>如何在雨中保证开车安全</h3></a></li> <li><a href="/aqbdz.html" title="英雄联盟lol2018s8.15唤潮鲛姬 娜美符文推荐"><span>31</span><h3>英雄联盟lol2018s8.15唤潮鲛姬 娜美符文推荐</h3></a></li> <li><a href="/aqbdy.html" title="《暴雨》中文流程攻略第六章"><span>32</span><h3>《暴雨》中文流程攻略第六章</h3></a></li> <li><a href="/aqbdx.html" title="塞尔达传说荒野之息怎么烹饪"><span>33</span><h3>塞尔达传说荒野之息怎么烹饪</h3></a></li> <li><a href="/aqbdw.html" title="《暴雨》中文流程攻略第四章"><span>34</span><h3>《暴雨》中文流程攻略第四章</h3></a></li> <li><a href="/aqbdv.html" title="风暴瓶怎么看天气变化"><span>35</span><h3>风暴瓶怎么看天气变化</h3></a></li> <li><a href="/aqbdu.html" title="塞尔达传说荒野之息大象攻略"><span>36</span><h3>塞尔达传说荒野之息大象攻略</h3></a></li> <li><a href="/aqbdt.html" title="妖精的尾巴怎么提高米拉杰魔鬼暴风雨的技能伤害"><span>37</span><h3>妖精的尾巴怎么提高米拉杰魔鬼暴风雨的技能伤害</h3></a></li> <li><a href="/aqbds.html" title="塞尔达怎么滑盾"><span>38</span><h3>塞尔达怎么滑盾</h3></a></li> <li><a href="/aqbdr.html" title="塞尔达传说 英杰服获得方法、升级材料效果介绍"><span>39</span><h3>塞尔达传说 英杰服获得方法、升级材料效果介绍</h3></a></li> <li><a href="/aqbdq.html" title="暴风雨怎么增加近战攻击"><span>40</span><h3>暴风雨怎么增加近战攻击</h3></a></li> </ul> <div class="clear"></div> </div> </div> </div> <div class="clear"></div> <div class="onjfeeds"></div><span class="onj_live"></span><span class="childonj"></span><div class="onj_location"></div><span class="buddhaonj"></span><div class="branchesccmw footer_service"> <a href="/sitemap.html" target="_blank">网站地图</a> <a href="/sitemap.xml" target="_blank">XML</a> <a href="/sitemap.txt" target="_blank">TXT</a> <a href="/rss.xml" target="_blank">RSS</a> <a href="/privacy.html" target="_blank">隐私政策</a> <a href="/service.html" target="_blank">服务条款</a> <a href="/agreement.html" target="_blank">使用条款</a> <div class="flagccmw footer_copyright clogWalletccmw">Copyright ©1996-2026 www.onijiang.com Corporation, All Rights Reserved</div> </div> <script src="/static/index1js/jquery-3.5.1.min.js" rel="external nofollow"></script> <script src="/static/js/share.js" rel="external nofollow"></script> <script src="/static/js/tran.js" rel="external nofollow"></script> <script src="/static/js/langs.js" rel="external nofollow" ></script> <div class="onj_happy"></div><span class="containeronj"></span><div class="baronj" id="baronj"></div><div id="Family_seal_onj"></div><script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https'){ bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else{ bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body> </html>