Python网络爬虫与信息提取入门<13>

Part28 1三种信息标记形式的比较

下面我们来比较一下三种信息标记形式。

XML是一种用尖括号标签表达信息的一种形式,JSON是用一种有类型的键值对标记信息的表达形式,YAML是用无类型的键值对标记信息的表达形式。

下面我们用一个例子来看一下这三种表达形式的不同:

Python网络爬虫与信息提取入门<13>_第1张图片

首先,XML形式,我们这里定义一个人person,还有名字firstName、lastName、还有他的地址所在的城市、邮编以及他的专业。如果用XML形式,我们需要对每一个信息域定义相关的标签,并且采用嵌套的形式组织起来。我们可以看到在整个的文本信息中,其中有效信息所占的比例并不高,大多数信息被标签占用。

我们再看一下JSON实例:

Python网络爬虫与信息提取入门<13>_第2张图片

JSON通过键值对的形式来组织信息,我们可以为信息定义相关的标签,fristName、lastName等等。但是无论是标签还是后面的值,键值之间都是要用双引号“”来表达他的类型。

最后再看一下YAML:

Python网络爬虫与信息提取入门<13>_第3张图片

YAML它是用无类型键值对表示的。所以对于我们给出的相关的信息,它可以用很简洁的名字来做相关的关联,而形成这样的键值对来表示。

从这三种的直观感觉来看,大家有什么感受呢?我们来深刻的比较一下这三种表达形式。

首先XML格式是最早的通用信息标记语言,严格意义上讲,世界上信息标记的多种形式起始于XML格式。它扩展性非常好,但由于存在标签的起始和结尾部分,所以相当繁琐。

JSON采用有类型的信息方式来标记信息,它非常适合程序处理,比如它本身就是用JS语言扩展而来的信息标记形式,甚至JSON格式就是程序代码的一部分,它相比XML来讲,它使用键值对比较简洁。但是由于需要对每一个键和值的信息类型做相关的考虑和定义,因此它更适合程序员和程序本身对它做相关的处理,

而YAML采用无类型的键值对形式进行表达,是三种信息方式中文本信息也就是有效信息在所有标记信息中所占比例最高的一种形式,而且他的可读性非常好。

在我们实际使用中,Internet上的信息交互与传递以及信息表达,主要采用XML格式,包括我们大家都知道的HTML格式也是XML格式这个类别的。

JSON主要用在移动应用云端和节点信息通信。什么时候用JSON格式呢?一般来讲JSON格式用在程序对接口处理的地方。JSON数据在经过传输之后能够作为程序代码的一部分,被程序直接运行。这样JSON格式中对信息类型的定义才能最大的发挥作用。这是JSON格式最大的价值。然而JSON标记格式有一个比较大的缺陷,就是它其中无法体现注释。因此当你需要在信息中表达一些需要人类关注的信息的时候。没法通过注释形式来增加进去。

YAML现在主要用于各类系统的配置文件之中,因为它既适合人类可读又适合程序解析。相对来讲比其他两种方式对文本资源的有效利用率更高,应用相对比较广泛。

在信息发展的标记的整个过程中,这三种形式构成了信息形成和标记的主流方式。他们的应用没有不同,但是都反映了信息及信息关系之间的价值。

Part29 2信息提取的一般方法

下面我们介绍信息提取的一般方法。信息提取指从标记后的信息中,提取所关注的内容之前为我们讲过信息标记的三种形式:XML JSON和YAML。无论哪种形式在信息标记中包含信息的一部分。我们关心的是我们所要提出的信息内容。那么该怎么做呢?这里有很多种方法,我们这里边从一般意义上给出几种方法:

比如第一种方法:我们可以完整的解析信息的标记形式,然后再提取信息中的关键信息。简单说,我们用标记解析器去解析XML、JSON、YAML格式。然后将其中所需要的信息提取出来。比如说BeautifulSoup库提供了对标签树的遍历。我们需要解析成信息,去遍历这棵树就可以了。这种方法优点是信息解析准确,你需要那部分信息就能找到这部分信息的位置,并且把信息提取出来。但是缺点也非常明显,我们再提取信息的时候过程

你可能感兴趣的:(Python网络爬虫与信息提取入门<13>)