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

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

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

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

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

我们再看一下JSON实例:

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

最后再看一下YAML:

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网络信息提取_Python网络爬虫与信息提取入门13相关推荐

  1. python网络提示_python 网络发现

    书籍:掌握Python的网络和安全 Mastering Python for Networking and Security - 2018.pdf 简介 掌握Python的网络和安全 掌握Python ...

  2. python 网络编程_Python网络编程(六)

    回顾 在<Python进阶记录之网络编程(五)>中,我们介绍了如何利用TCP服务端和客户端实现一个简单的点对点聊天,区别基于TCP协议和UDP协议的不同之处.今天我们讲一下如何利用多进程和 ...

  3. python udp通信_Python网络编程(三)

    回顾 在<Python进阶记录之网络编程(二)>中,我们介绍了UDP端口号的基本概念和作用以及Python中UDP服务端的端口绑定和简单创建.今天我们利用UDP server和UDP cl ...

  4. python socket 域名_Python网络编程中的套接字名和DNS解析。

    距离上一次TCP的文章,这一次要讲的是套接字名和DNS,并且还会涉及到网络数据的发送接受和网络错误的发生和处理. 下面说套接字名,在创建和部署每个套接字对象时总共需要做5个主要的决定,主机名和IP地址 ...

  5. python网络信息提取_python网络爬虫与信息提取I

    一.Requests库的安装 安装Requests非常简单,只需一行代码即可.首先以管理员身份运行cmd,输入如下代码: 1.pip的安装 其实一般安装的python其Script文件包下都会自带有p ...

  6. python古诗默写_Python网络爬虫:爬取古诗文中的某个制定诗句来实现搜索

    Python网络爬虫:爬取古诗文中的某个制定诗句来实现搜索 发布时间:2020-07-20 23:48:19 来源:51CTO 阅读:883 python编译练习,为了将自己学习过的知识用上,自己找了 ...

  7. python天涯帖子_python 网络爬虫(一)爬取天涯论坛评论

    我是一个大二的学生,也是刚接触python,接触了爬虫感觉爬虫很有趣就爬了爬天涯论坛,中途碰到了很多问题,就想把这些问题分享出来, 都是些简单的问题,希望大佬们以宽容的眼光来看一个小菜鸟

  8. python如何提取网络链接_Python网络爬虫——把一个网页中所有的链接地址提取出来(去重)...

    # 把一个网页中所有的链接地址提取出来. 运行环境Python3.6.4-实现代码:import urllib.request import re #1. 确定好要爬取的入口链接 url = &quo ...

  9. python网络编程案例_Python 网络编程_python网络编程基础_python高级编程

    Python 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的 ...

最新文章

  1. JS组件系列——Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
  2. Doxygen的使用,配置及实例
  3. android glide 版本,Android Studio 第六十七期 - Android Glide3.7.0和3.8.0用法
  4. python根据矩阵数值大小涂上不同深浅颜色
  5. chart控件删除最左边点_常见功能测试点的测试用例大全
  6. linux java mysql 备份 runtime_Mysql如何在linux中实现定时备份
  7. windows防护之(一)屏蔽危险端口
  8. HTML的Get方法URL传递中文参数,解决乱码问题
  9. 史上最详细的MySQL数据库安装教程(图文详解)
  10. jmeter使用手册
  11. PS:成功解决点击PS中的裁剪工具时,整张图片消失掉或者整张图片变的及其小的问题
  12. 关于思源笔记与docker的部分问题
  13. Python2.7爬虫——爬取微信公众号文章
  14. html 人物行走动画,CSS3人行走动作图解和动画实现
  15. Transformer拿下CV顶会大奖,微软亚研获ICCV 2021最佳论文
  16. Android 轻松实现百度地图定位
  17. 网络安全电子数据取证如何学习?
  18. iOS 集成微信支付
  19. onShow onHide页面生命周期不执行
  20. FFMPEG截图 RTMP直播流

热门文章

  1. CODEVS-1082-线段树练习3-splay
  2. hdu5442(2015长春网络赛F题)
  3. 2017年09月23日普级组 树塔狂想曲
  4. Atcoder AGC031B Reversi (DP计数)
  5. 浏览器左上角的小图标怎么整不掉_Honeyview:蜂蜜浏览器
  6. git 改了一段代码不想要了_初识Git
  7. net_conv1_conv2_conv3_conv4_py
  8. 青蛙学Linux—高性能负载均衡集群软件LVS
  9. unity导出工程导入到iOS原生工程中详细步骤
  10. metaprogramming笔记