数据提取方法

来源:互联网 发布:山西教师网络研修网 编辑:程序博客网 时间:2024/04/28 04:41

数据分类

  • 区分标准:规律性
  • 规律弱
    • 非结构化数据: html等
    • 处理方法:正则、xpath
  • 规律强
    • 结构化数据:json、xml等
    • 处理方法:转化为python类型

JSON

说明:JSON(JavaScript Object Notation)是一种轻量级数据交换格式,适用于进行数据交互

使用说明:能找到尽量使用返回json数据的url,因为很好转为python内建数据类型

相互转换

  • json字符串<—–>Python数据类型
    • json.loads()
    • json.dumps():右—>左
      • 用途,写入时,将Python数据类型转换
  • 包含json的类文件对象—->Python数据类型
    • json.load()
    • json.dump()
  • 类型转换说明
JSON Python object dict array list string unicode number(int) int, long number(resl) float true True false False null None

json教程

正则

==此处只说常用的==
- re.compile():编译
- re.match():从头找一个
- re.search():找一个
- re.findall():找所有
- re.sub():替换
- 原始字符串转义:r(只针对特殊字符,如换行符)
- 贪婪与非贪婪
- 默认贪婪,尽可能多的匹配
正则表达式速查表

XPATH和LXML类库

LXML库

  • python HTML/XML解析器,通过此解析器,导入etree,可以通过XPath,快速定位特定元素和获取节点信息
  • 使用入门
    • 导入lxml的etree库
      • from lxml import etree
    • 利用etree.HTML,将字符串转化为Element对象
    • Element对象,有xpath的方法

XPATH

一门在HTML\XML文档查找信息的语言
- 节点(标签)选择
XPATH官方文档说明

表达式 描述 nodename 选取此节点所有子节点 / 从根节点选取 // 从匹配选择当前节点选择文档节点,不考虑位置 . 选取当前 .. 选取当前父节点 @ 选取属性

- 选取未知节点

通配符 描述 * 匹配任何元素节点 @* 匹配任何属性节点 node() 匹配任何类型节点

XML和HTML

  • XML:可扩展标记语言
    • 焦点在数据内容
  • HTML:超文本标记语言
    • 显示数据以及更好的显示