HTML的信息标记
HTML通过预定义的<>...</>标签形式组织不同类型的信息,如文本、图像、声音、视频。
信息标记的三种形式
XML、JSON、YAML
信息标记的作用
- 标记后的信息可形成信息组织结构,增加了信息维度
- 标记的结构与信息一样具有重要价值
- 标记后的信息可用于通信、存储或展示
- 标记后的信息更利于程序理解和运用
XML:
Extensible Markup Language,是一种用于标记电子文件使其具有结构性的标记语言,被设计用来传输和存储数据。
简单来说,XML通过标签形式来构建所有的信息。
- <name> ... </name>,当标签内有内容时,用一对标签来表达该信息
- <name />,无内容时,用一对尖括号来表达
- <!‐‐ ‐‐>,增加注释
JSON:
JavaScript Object Notation,即:JS 对象标记。是存储和交换文本信息的语法,类似XML,但比XML更小、更快,更易解析。
一般来讲,JSON格式用在程序对接口处理的地方,是有数据类型的键值对。
- “key” : “value”,单键对应单值
- “key” : [“value1”, “value2”] ,单键对应多值,用中括号表示
- “key” : {
“value1” : “value2”,
“value1” : “value2”
},键值对嵌套使用,用大括号表示
YAML:
Yet Another Markup Language,这种语言强调以数据做为中心;类似于标准通用标记语言的子集XML的数据描述语言,语法比XML简单很多。
YAML是无类型的键值对。
- key :
key1 : value1
key2 : value2,缩进形式表示从属关系 - key : # Comment
‐value1
‐value2,其中#表示注释,-表示并列关系 - key : |
value,用 | 来表示整块数据,键值对之间可以嵌套
三种信息标记形式对比
信息提取的方法
解析信息的标记形式,再结合搜索方法,提取关键信息,需要标记解析器及文本查找函数。
例如:提取HTML中的所有URL链接
思路:搜索到所有a标签;解析a标签格式,提取href后的链接内容。
import requests
from bs4 import BeautifulSoup
res = requests.get('http://www.pmcaff.com/site/selection')
soup = BeautifulSoup(res.text,'lxml')
for link in soup.find_all('a'):
print(link.get('href'))
# soup.find_all(...)也可简写为soup(...);同样,标签<tag>.find_all(...)方法也可简写为<tag>(...)
这里使用到了find_all()方法,上面代码括号内的a为检索的标签名称。
操作环境:Mac,Python 3.6,PyCharm 2016.2
参考资料:中国大学MOOC课程《Python网络爬虫与信息提取》
网友评论