Python爬虫之信息组织与提取

信息的标记

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

信息标记的三种格式

  • XML
  • JSON
  • YAML

XML(eXtensible Markup Language)

XML

空元素的缩写形式

        <img src=“china.jpg” size=“10” /> 

注释书写形式

        <!‐‐ This is a comment, very useful ‐‐>

小结

    <name></name>  (标签中包含内容,可以使用这种形式进行表示,与html一样)

    <name />  (标签中没有内容,用一对尖括号即可)

    <!‐‐ ‐‐>  (对标签进行注释)

JSON(JavsScript Object Notation)

JSON

一个键对应多个值的时候需要采用 方括号[]与逗号(,)组织,如下图所示:
这里写图片描述

键值对嵌套使用,需要采用大括号{}与逗号(,)进行组织,如下图所示:
这里写图片描述

小结

JSON采用键值对进行表示,可以一个键对应一个值;也可以一个键,对应多个值,对应的值需要通过方括号与逗号进行组织;也可以把新的键值对作为值的一部分放入方括号中。JSON这种键值对的优点,对于像JavaScript等编程语言可以直接将JSON作为程序的一部分,使得编写程序大大简化。
这里写图片描述

YAML(YAML Ain’t Markup Language)

称之为无类型键值对

YAML

缩进表达所属关系

name:
    newName : 北京理工大学
    oldName: 延安自然科学院

‐ 表达并列关系

name:
‐北京理工大学
‐延安自然科学院

这里写图片描述

三种信息标记形式的比较

类型 特点
XML 最早的通用信息标记语言,可扩展性好,但繁琐
JSON 信息有类型,适合程序处理(js),较XML简洁
YAML 信息无类型,文本信息比例最高,可读性好
类型 应用
XML Internet上的信息交互与传递
JSON 移动应用云端和节点的信息通信,无注释
YAML 各类系统的配置文件,有注释易读

信息提取的一般方法

方法一:完整解析信息的标记形式,再提取关键信息

    XML JSON YAML

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

  • 优点:信息解析准确
  • 缺点:提取过程繁琐,速度慢

方法二:无视标记形式,直接搜索关键信息

    搜索

对信息的文本查找函数即可.

  • 优点:提取过程简洁,速度较快
  • 缺点:提取结果准确性与信息内容相关

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

    XML JSON YAML 搜索

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

实例

提取HTML中所有URL链接
思路:
1) 搜索到所有<a>标签
2) 解析<a>标签格式,提取href后的链接内容

这里写图片描述

猜你喜欢

转载自blog.csdn.net/miaoqiucheng/article/details/80294378