Python网络爬虫与信息提取Week 2整理(2)

2.2 信息组织与提取方法

1.信息标记的三种形式

信息标记的作用:

(1)可以形成信息组织结构,增加信息维度。

(2)可用于通信、存储或展示。

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

国际通用信息标记三种形式有:XML(类似于HTML)、JSON(有类型键值对)、YAML(无类型键值对)。

2.三种信息标记形式的比较

一段信息,用XML表示:

JSON版本:

YAML实例:

firstname:Tian

lastname:Song

address:

streetAddr:中关村南大街5号

City:北京市

zipcode:100081

prof:

-Computer System

-Secuity

下面对三种类型进行比较:

(1)XML是最早的通用信息标记语言,可扩展性好,但比较繁琐。在Internet上使用。

(2)JSON信息有类型,适合程序处理(js),较XML简洁。移动应用云端和节点的信息通信,无注释。

(3)YAML信息无类型,文本信息比例最高,可读性好。各类系统的配置文件,有注释,易懂。

3.信息提取的一般方法

方法一:W按照解析信息的标记形式,再提取关键信息。需要标记解析器,优点是信息解析准确,缺点是提取过程繁琐,速度慢。(XML/JSON/YAML均适用)

方法二:无视标记形式,直接搜索关键信息。优点是提取过程简洁,速度较快;缺点是提取结果准确性与信息内容相关。

融合方法:结合形式解析与搜索方法,提取关键信息。需要标记解析器及文本查找函数。

例如输入:

结果为

http://www.icourse163.org/course/BIT-268001

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

(1)方法:.find_all(name,attrs,recursive,string,**kwargs):返回一个列表类型,存储查找的结果。

①.name:对标签名称的检索字符串。

如果参数列表我们使用True,将返回所有的标签名称。

如果我们想显示b开头标签的内容,可以使用正则表达式库来实现,代码如下:

这样返回的结果是:

body

b

②.attrs:对标签属性值的检索字符串,可标注属性检索。

③recursive:是否对子孙全部检索,默认为True。

④string:…中字符串渔区的检索字符串。(..)等价于.find_all(),这是一种简写。

⑤**kwargs:7种扩展方法。见表2.1

表2.1 扩展方法

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180706G0H7F500?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券