Python之网络爬虫(XML与HTML与JSON文件、urllib与request的用法)

一、数据的类型

1、结构化数据
可以用统一的结构加以表示的数据。可以使用关系型数据库表示和存储,表现为二维形式的数据。特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。比如MySQL数据表中是数据。

2、半结构化数据
是结构化数据的一种形式,并不符合关系型数据库或其他数据表的形式关联起来的数据模型结构,但包含相关标记,用来分隔语义元素以及对记录和字段进行分层。因此,它也被称为自描述的结构。常见的半结构数据有HTML,XML和JSON等,实际上是以树或者图的结构来存储的。

3、非结构化数据
就是没有固定结构的数据,各种文档、图片、视频/音频等都属于非结构化数据。对于这类数据,我们一般直接整体进行存储,而且一般存储为二进制的数据格式。除了结构化和半结构数据之外的数据都是非结构化数据。

4、总结
简单来说,结构化数据要求严格,数据类型和大小都是提前规定好了的;而半结构化数据没有那么严格,可以适当扩充;非结构化数据,可以任意修改。

二、HTML与XML的区别

  • 1、在HTML中不区分大恽,在XML中严格区分。
  • 2.在HTML中,有时不严格,如果上下文清楚地显示出段落或者列表键在何处结尾,那么你可以省略或者之类的结束标记。在XML中,是严格的树状结构,绝对不能省略掉结束标记。
  • 3、在XML中,拥有单个标记而没有匹配的结束标记的元素必须用一个/字符作为结尾。这样分析器就知道不用查找结束标记了。
  • 4、在XML中,属性值必须分装在引号中。在HTML中,引号是可用可不用的。
  • 5、在HTML中,可以拥有不带值的属性名。在XML中,所有的属性都必须带有相应的值。
  • 6、HTML使用固有的标记;而XML没有固有的标记;HTML标签是预定义的:XML标签是免费的、自定义的、可扩展的。
  • 7、HTML是用来显示数据并将内容与数据结合的,偏重前端;而XML是用来描述数据、存放数据的。HTML的设计目标是现实数据并集中与数据外观,而XML的设计目标是描述数据并集中与数据的内容。

总的来说就是,XML的语法要求比HTML的要严格;但他们的作用和设计目标不同,因此各有好处,就看我们是否用得恰当。

三、json文件

1、json文件的认识
JSON(JavaScript Object Notation, JS对象标记)是一种轻量级的数据交换格式。它基于ECMAScript (w3c制定的JS规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成,铕效地提升网络传输效率。

2、JSON的语法规则
在JS语言中,一切都是对象。因此,任何支持的类型都可以通过JSON来表
示,例如字符串、数字、对象、数组等。但是对象和数组是比较特殊且常用的两种类型。

  • 对象表示为键值对。
  • 数据由逗号分隔。
  • 花括号保存对象。
  • 方括号保存数组。

3、JSON与JS对象的关系
实际上可以这么理解, JSON是JS对象的字符串表示法,它使用文本表示一个JS对象的信息,本质是一个字符串。

四、提取网页中的信息

1、XPath与Ixml的关系
XPath是一门在XML、HTML文档中查找信息的语言,对XPath的理解是很多高级XML、HTML应用的基础,XPath 在XML中通过元素和属性进行导航。Ixml是一个用来处理XMLr的第三方Python库,它在底层封装了用C语言编写的libxm12 和libxslt,并以简单强大的Python API, 兼容并加强了著名的Element TreeAPI。
安装: pip install Ixml
使用: from lxml import etree

# from xml.etree import ElementTree
# 或者这样导入
from xml.etree import cElementTree

# 一个xml字符串
xmlStr = """<bookstore>
<book>
    <title lang=&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鸿蒙Next

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值