1、信息的标记
标记后的信息可形成信息组织结构,增加了信息维度
标记后的信息可用于通信、存储或展示
标记后的结构与信息一样具有重要价值
标记后的信息更利于程序理解和运用
2、HTML的信息标记
HTML是www的信息组织方式。
HTML是通过预定义的<>....</>标签形式组织不同类型的信息
3、信息标记的三种方式
1)、XML
如果标签中没有内容,那么我们可以用一对尖括号表示:
也可嵌入注释内容:
2)、JSON
有类型的键值对key:value
注意:
无论是键还是值,如果是字符串的形式,我们都需要使用双引号来表示,如果是数值,直接写就行。
如果值中有多个值,我们需用[,]来表示。
键值对嵌套使用的时候,我们需要用{,}来表示,如:
3)、YAML
无类型键值对key:value,如:
同时使用缩进的方式来表示所属关系:
用-表达并列关系:
用|表达整块数据 #表示注释
4、三种信息标记的实例
1)、XML实例
2)、JSON实例
3)、YAML实例
5、三种信息标记形式的比较
XML 最早的通用信息标记语言,可扩展性好,但繁琐
JSON 信息有类型,适合程序处理,比XML简洁
YAML 信息无类型,文本信息比例最高,可读性好。
而Internet上的信息交互与传递是采用XML格式(HTML也是属于这个范畴的)
JSON则是用在移动应用云端和节点的信息通信,无注释,
· YAML则是应用在各类系统的配置文件,有注释易读
6、信息提取的一般方法
方法一:完整解析信息的标记形式,再提取关键信息
即使用标记解析器去解析三种信息标记格式,然后将所需要的信息提取出来。如:bs4库中的标签树遍历
优点:信息解析准确
缺点:提取过程繁琐,速度慢
方法二:无视标记形式,直接搜索关键信息。
搜索:
对信息的文本查找函数即可
优点:提取过程简洁,速度较快
缺点:提取结果准确性与信息内容相关
方法三:融合方法
结合形式解析与搜索方法,提取关键信息
需要标记解析器及文本查找函数。
实例:
提取HTML中所有URL链接
思路:
搜索到所有<a>标签
解析<a>标签格式,提取href后的链接内容
import requests
from bs4 import BeautifulSoup
#BeautifulSoup是一个类
r = requests.get('http://python123.io/ws/demo.html')
# print(r.text)
demo = r.text
#解析demo的解释器
soup = BeautifulSoup(demo,'html.parser')
for link in soup.find_all('a'):
print(link.get('href'))