数据的处理
Posted hui-code
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据的处理相关的知识,希望对你有一定的参考价值。
爬虫数据的提取
正则表达式
- 规则---不同语言不同,比如js中的正则表达式
- 转移字符.*
- Re模块
- compile
- findall---返回列表
- search
- match
- sub---替换---返回结果字符串
- 正则会在最后的字符串提取时起作用
- 规则---不同语言不同,比如js中的正则表达式
jsonpath
- 属于js中的内容,并不完全与Python兼容,其中有些函数不能使用
- jsonpath接收的是json.loads()后的结果,所以是一个字典或者列表。也就是说jsonpath接收的必须是Python的内置对象。
- jsonpath返回的是一个列表
Python中运行js代码--两个模块--反爬时会用到
- js2py,本质上将js代码翻译成Python代码
- pyexecjs,已经停止更新了
数据的清洗
- 数据的一致性---单位是否统一
- 数据的完整性---出版社信息
- 数据的唯一性---数据去重
- 数据的准确性---判断数据是否正确
- 数据的清洗
- 时间格式
- 数据类型转换---str_to_float
- 字符串处理
爬虫数据存储
- 文件
- 首先打开文件
- open(文件,打开方式)
- json
- 使用ensure_ascii=False保持中文的形式
- csv
- 结构简单:列行数据分别以逗号和换行符来分割
- 使用便捷:可直接被pandas、numpy等数据处理模块或直接导入Excel中进行处理
- 首先打开文件
数据库
- mysql
- 使用线程
- 更稳定
- 回滚实现更优秀
- 权限限制更完善
- 对编码比较敏感,连接时需要注意
- postgresql
- 使用进程
- 集群支持好
- 事务隔离做的更好,安全性更高
- 没有字符串长度限制,对字符支持更好一些
- 地址数据的良好支持,提供更多高级的功能
- MongoDB
- 读数据占据优势,适合存储热数据,可以充分利用机器的内存资源,查询效率高
- mysql更适合以插入、更新的任务模型
- 稳定性不如mysql,在事务支持方面薄弱
- 不用事先创建数据库
- mysql
数据库的操作
- 使用pymysql连接和控制mysql数据库
- 熟练编写sql语句
- 注意连接参数---编码格式
- 连接和控制postgresql与mysql类似,仅仅是sql语句不同
- 使用pymono连接操作MongoDB数据库
- 使用pymysql连接和控制mysql数据库
使用sqlalchemy创建模型类
使用Django的ORM模型类---推荐使用
以上是关于数据的处理的主要内容,如果未能解决你的问题,请参考以下文章