信息标记的三种形式

信息的标记

标记后的信息可形成信息组织结构,增加了信息维度

标记的结构与信息一样具有重要价值

标记后的信息可用于通信、存储或展示

标记后的信息更利于程序理解和运用

HTML 的信息标记

信息标记的三种形式

XML

eXtensible Markup Language

JSON

JavsScript Object Notation

YAML

YAML Ain’t Markup Language

小结&比较

XML:

JSON:

YAML:

比较

信息提取的一般方法

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

XML JSON YAML

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

优点:信息解析准确

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

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

搜索

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

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

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

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

XML JSON YAML 搜索

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

实例:

提取 HTML 中所有 URL 链接

思路:1)搜索到所有<a>标签

2)解析`<a>`标签格式,提取`href`后的链接内容

基于 bs4 库的 HTML 内容查找方法

<>.find_all(name, attrs, recursive, string, **kwargs)

返回一个列表类型,存储查找的结果

  • name:对标签名称的检索字符串
  • attrs:对标签属性值的检索字符串,可标注属性检索
  • recursive:是否对子孙全部检索,默认True
  • string:<>…</>中字符串区域的检索字符串

实例:”中国大学排名定向爬虫“

功能描述

输入:大学排名URL链接

输出:大学排名信息的屏幕输出(排名,大学名称,总分)

技术路线:requests‐bs4

定向爬虫:仅对输入URL进行爬取,不扩展爬取

定向爬虫可行性

程序的结构设计

步骤1:从网络上获取大学排名网页内容 getHTMLText()

步骤2:提取网页内容中信息到合适的数据结构 fillUnivList()

步骤3:利用数据结构展示并输出结果 printUnivList()

实例编写

在课程中,排名网用的是 HTML 表格,而现在的排名网用的是 JSON 格式的,

所以我重新写一个代码

旧:

新: