信息标记的三种形式
用于理解信息所反馈的含义
- XML:扩展标记语言,以标签为主来构造标签,表达标签
<name>....</name>
有内容的标签
<img src="china.jpg" size="10" />
空标签
<!-- This is a comment-->
注释书写形式
2.JSON:有类型的键值对,“key”:“value”,给出一个信息,对信息的类型进行定义
"key":"value"
一个值
"key":["value1","value2"]
多组值
"key":{"subkey":"subvalue"}
新的键值对做为值的一部分放入键值对的嵌套 - YAML:无类型的键值对,key:value
name:
newname: value
oldname:value1
用缩进表达包含关系
name:
- value
- -value1
用-表达并列关系
text: | #这是注释
这是一整块数据,换行也可以
用|表达整块数据
用#表达注释
比较
XML:最早的通用信息标记语言,可扩展性好,但繁琐。Internet上的信息交互与传递。
JSON:信息有类型,适合程序处理,较XML简洁。移动应用云端和节点的信息通信,无注释。
YAML:信息无类型,文本信息比例最高,可读性好。各类系统的配置文件,有注释易读。
信息提取的一般方法
方法一:完整解析信息的标记形式,再提取关键信息。
需要标记解析器 例如:bs4标签树的遍历
优点:信息解析正确
缺点:提取过程繁琐,速度慢
方法二:无视标记信息,直接搜索关键信息。
对信息的文本查找函数。
优点:提取过程简洁,速度较快
缺点:提取结果的准确性与信息内容相关
方法三:融合方法,结合形式解析与搜索方法,提取关键信息。
需要标记解析器与文本查找函数
【实例练习】
提取html中所有url链接
思路:1.搜索所有标签
2.解析标签格式,提取href后的链接内容
>>> from bs4 import BeautifulSoup #提取HTML中所有的URL链接
>>> import requests
>>> r=requests.get("https://python123.io/ws/demo.html")
>>> r.status_code
200
>>> demo=r.text
>>> soup=BeautifulSoup(demo,"html.parser")
>>> for link in soup.find_all('a'):#将所有a标签找出来
print(link.get('href'))
http://www.icourse163.org