2021年02月06日 23:10 __ _ _ _ _

文章配图

人是为活着本身而活着,而不是为了活着之外的任何事物所活着。

——余华《活着》

文章配图

之前小编提到过网络爬虫的风险,即 保护个人数据/信息 的重要性。

当然,小编这里不是要大家去爬取个人信息,而是因为有这样可能的存在,就越要保护好自己的隐私。
那么我们在爬取网页时如何找到对我们有效的信息呢?或者说,找到后我们又要如何通过Python将一系列的信息打印出来呢?

1.为何要对信息进行提取?

首先,在Python爬虫爬取网页时,是不能将整个网页信息打印出来的,至于为什么,看过网页源代码的就知道,按F12或者右键查看源代码(或者检查也可)可以看出来一个网页包含了很多信息,比如小编的个人博客源代码:

文章配图

这其中便包含了前端HTML或者其它语言的代码,处理起来就会很繁琐,小编估计也没人这样做过。

在提取信息之前,我们先了解一下 信息的标记
,就好比自己家里有很多物品,为了让别人清楚它的作用,就用小纸条将各种物品的功能写在小纸条并贴在物品上面。

那么 信息标记的好处 也显而易见:

  • 标记后的信息可形成信息组织结构,增加了信息维度。
  • 标记后的信息可用于通信,存储或展示。
  • 标记的结构与信息一样具有重要价值。
  • 标记后的信息更有利于程序理解和运用。

To:网页中HTML的信息标记:
H:hyper

T:text

M:markup

L:language

HTML 是www的信息组织形式:可以将声音,图像,视频等超文本信息嵌入到文本中。

HTML通过预定义的<>…<>标签形式组织不同类型的信息。

2.三种信息标记

国际公认的三种 信息标记 :XML,JSON,YAML

XML

XML: XML(extensible Markup Language):扩展标记语言,与HTML很接近的标准语言,采用了 以标签为主 的来构建信息、表达信息的方式。如:


<img scr="china.jpg" size="10">...</img> #img为名称,即Namescr="china.jpg" size="10"是属性Attribute<!   >为注释

实例:


<person>  <first Name>tian</firstName>  <addres>    <streeAddr>湖南</streeAddr>    <city>长沙</city>  </address>  <prof>Com</prof></person>

HTML是先于XML出来,也可以说是XML是基于HTML发展而来。
JSON ** JSON: JavsScript Object Notation 是由 有类型的键值对 ** 构建的,如: key:value
实例:“name”:“北京” “name”:[“北京”,“湖南”]
当我们嵌套使用时:“name”:{“newname”:“北京”,“oldname”:“湖南”}
实例:


{  "first Name":"tian",  "addres":{    "streeAddr":"湖南"    "city":"长沙    },  "prof":["Com","ser"]}

YAML

YAML: Yet Another Markup Language

无类型键值对 key:value

如:name:北京

嵌套时,用缩进表示

特性:|表达整块数据 #表示注释 -表示并列关系

实例:


first Name:tian  addres:    streeAddr:湖南    city:长沙  prof:  -Com  -ser

3.三种标签形式的比较

信息标记形式的 简单比较:

  • XML是一种用<>标签标记信息的形式。

  • JSON是一种由有类型的键值对信息标记的形式。

  • YAML是一种用无类型的键值对信息标记的形式。

三种标签形式主流的比较以及用处:

  • XML: 最早的通用信息标记语言,可扩展性好,但是较为繁琐;多用于Internet上的信息交互与传递以及信息表达。

  • JSON: 信息有类型,适合程序的处理(比如js),较XML简洁;多用于移动应用云端和节点的信息通信,因为无注释,因此在程序与接口的地方也较为常用。

  • YAML: 信息无类型,文本信息比例最高,可读性好;多用于各类系统的配置文件,有注释易读。

4.信息提取的三种方法

1.完整解析信息的标记形式,再提取关键信息(解析)

需要标记解析器,例如:bs4库的标签树遍历。

优点:信息解析准确。

缺点:提取过程繁琐,速度慢。

2.无视标记形式,直接搜索关键信息。(搜索)

搜索:对信息发文本查找函数即可。

优点:提取过程简洁,速度较快。

缺点:提取结果准确性与直接信息内容相关。

3.融合方法(搜索+解析):

结合形式解析与搜索方法,提取关键信息。

需要标记解析器以及文本查找函数。

结合上述两种方法,为最佳选择。

Python爬虫系列,未完待续…

文章配图

文章配图

为你,千千万万遍.

往期推荐:

Python爬虫系列:安装Scrapy框架的那些事 2021-02-03
文章配图

一月碎碎念 || 继续下一趟车站 2021-01-31
文章配图

互联网人的必备技能:系统重装 2021-01-21
文章配图

一键三连,就差你了
文章配图

预览时标签不可点

阅读




__