数据分类
- 区分标准:规律性
- 规律弱
- 非结构化数据: 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 |
正则
==此处只说常用的==
- 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的方法
- 导入lxml的etree库
XPATH
一门在HTML\XML文档查找信息的语言
- 节点(标签)选择
XPATH官方文档说明
表达式 | 描述 |
---|---|
nodename | 选取此节点所有子节点 |
/ | 从根节点选取 |
// | 从匹配选择当前节点选择文档节点,不考虑位置 |
. | 选取当前 |
.. | 选取当前父节点 |
@ | 选取属性 |
- 选取未知节点
通配符 | 描述 |
---|---|
* | 匹配任何元素节点 |
@* | 匹配任何属性节点 |
node() | 匹配任何类型节点 |
XML和HTML
- XML:可扩展标记语言
- 焦点在数据内容
- HTML:超文本标记语言
- 显示数据以及更好的显示