Python网络爬虫与信息抽取笔记08 标签树的遍历

2018 年 5 月 10 日 专知 Yukun

【导读】我们在上一节的内容中已经为大家对Beautiful Soup库进行讨论,这一节将学习标签树的遍历。本文内容讨论了标签树遍历的四个内容:HTML基本格式、下行遍历、上行遍历以及平行遍历。话不多说,让我们一起学习这些内容吧。


春节充电系列:李宏毅2017机器学习课程学习全部笔记


Python网络爬虫与信息抽取笔记01 课程框架和Python IDE工具

Python网络爬虫与信息抽取笔记02 requests库入门

Python网络爬虫与信息抽取笔记03 HTTP协议介绍

Python网络爬虫与信息抽取笔记04 Robots协议

Python网络爬虫与信息抽取笔记05 爬虫实战1

Python网络爬虫与信息抽取笔记06 爬虫实战2

Python网络爬虫与信息抽取笔记07 Beautiful Soup库


视频网址:

https://www.bilibili.com/video/av9784617?from=search&seid=240663710546169136

http://www.icourse163.org/course/BIT-1001870001?tid=1001962001


Python网络爬虫与信息抽取笔记08 标签树的遍历

 

今天介绍bs4库的具体应用




1.HTML基本格式




HTML基本格式如下图所示


我们可以根据HTML格式制作一个标签树


我们有三种方法遍历,分别是下行遍历、上行遍历以及平行遍历。


2.下行遍历




标签树的下行遍历有三个属性,第一个属性.contents是一个列表,将所有儿子存入其中,这是最常用的一个。另外两个属性.children和.descendants分别是迭代类型。


例如我们用soup.head.contents就可以得到标签<head>的子标签


对于一个标签的儿子节点并不只包括标签节点还包括字符串节点


注意.contents返回形式是列表,可以用列表的方式对其中的信息进行检索


我们可以用下图的for循环分别遍历儿子节点或者子孙节点(第二个for循环打印错误,应为soup.body.descendants)


3.上行遍历




对于标签树的上行遍历有两个属性,其中第二个属性.parents为迭代类型


以下指令我们可以发现html的父亲是它自己,soup没有父亲


我们可以用for循环进行标签树的上行遍历


4.平行遍历




标签树的平行遍历则有四个属性

 

标签树的平行遍历是有条件的


下面是一个具体的例子,平行遍历必须在同一个父节点下的各节点间


通过soup.a.next_sibling指令我们可以知道A标签的下一个平行节点是一个字符串and


soup.a.previous_sibling可以得到上一个平行节点标签


我们可以用下面两个for循环分别遍历后续节点和前续节点


我们总结一下上述所讲的东西,可以全部属性都如下图所示

 

参考链接:

http://www.icourse163.org/course/BIT-1001870001?tid=1001962001

 更多教程资料请访问:人工智能知识资料全集

-END-

专 · 知

人工智能领域主题知识资料查看与加入专知人工智能服务群

【专知AI服务计划】专知AI知识技术服务会员群加入人工智能领域26个主题知识资料全集获取

点击上面图片加入会员

请PC登录www.zhuanzhi.ai或者点击阅读原文,注册登录专知,获取更多AI知识资料

请扫一扫如下二维码关注我们的公众号,获取人工智能的专业知识!

点击“阅读原文”,使用专知

登录查看更多
3

相关内容

知识抽取,即从不同来源、不同结构的数据中进行知识提取,形成知识(结构化数据)存入到知识图谱。
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
115+阅读 · 2020年5月10日
【新书】Python中的经典计算机科学问题,224页PDF
专知会员服务
51+阅读 · 2019年12月31日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
94+阅读 · 2019年12月4日
吐血整理!140种Python标准库、第三方库和外部工具都有了
炼数成金订阅号
14+阅读 · 2019年7月30日
将Python用于NLP:Pattern 库简介
Python程序员
15+阅读 · 2019年6月7日
手把手教你用R语言制作网络爬虫机器人(一)
R语言中文社区
4+阅读 · 2019年1月26日
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
我是一个爬虫
码农翻身
12+阅读 · 2018年6月4日
自然语言处理(4)之中文文本挖掘流程详解(小白入门必读)
机器学习算法与Python学习
5+阅读 · 2017年12月22日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
【宁波站】网络爬虫与文本挖掘
数萃大数据
4+阅读 · 2017年7月19日
Arxiv
3+阅读 · 2019年3月1日
Rapid Customization for Event Extraction
Arxiv
7+阅读 · 2018年9月20日
Arxiv
8+阅读 · 2018年4月8日
VIP会员
相关资讯
吐血整理!140种Python标准库、第三方库和外部工具都有了
炼数成金订阅号
14+阅读 · 2019年7月30日
将Python用于NLP:Pattern 库简介
Python程序员
15+阅读 · 2019年6月7日
手把手教你用R语言制作网络爬虫机器人(一)
R语言中文社区
4+阅读 · 2019年1月26日
Python用法速查网站
Python程序员
17+阅读 · 2018年12月16日
我是一个爬虫
码农翻身
12+阅读 · 2018年6月4日
自然语言处理(4)之中文文本挖掘流程详解(小白入门必读)
机器学习算法与Python学习
5+阅读 · 2017年12月22日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
【宁波站】网络爬虫与文本挖掘
数萃大数据
4+阅读 · 2017年7月19日
Top
微信扫码咨询专知VIP会员