前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬虫系列:针对网页信息内容的提取

Python爬虫系列:针对网页信息内容的提取

作者头像
小Bob来啦
发布2021-03-10 15:30:10
1.7K0
发布2021-03-10 15:30: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很接近的标准语言,采用了以标签为主的来构建信息、表达信息的方式。如:

代码语言:javascript
复制
<img scr="china.jpg" size="10">...</img> #img为名称,即Name
scr="china.jpg" size="10"是属性Attribute
<!   >为注释

实例:

代码语言:javascript
复制
<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”:“湖南”}

实例:

代码语言:javascript
复制
{
  "first Name":"tian",
  "addres":{
    "streeAddr":"湖南"
    "city":"长沙
    },
  "prof":["Com","ser"]
}

YAML

YAML:Yet Another Markup Language

无类型键值对key:value

如:name:北京

嵌套时,用缩进表示

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

实例:

代码语言:javascript
复制
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爬虫系列,未完待续...

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-02-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员Bob 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档