数据的处理

爬虫数据的提取

  1. 正则表达式

    1. 规则---不同语言不同,比如js中的正则表达式
      • 转移字符.*
    2. Re模块
      1. compile
      2. findall---返回列表
      3. search
      4. match
      5. sub---替换---返回结果字符串
    3. 正则会在最后的字符串提取时起作用
  2. jsonpath

    1. 属于js中的内容,并不完全与Python兼容,其中有些函数不能使用
    2. jsonpath接收的是json.loads()后的结果,所以是一个字典或者列表。也就是说jsonpath接收的必须是Python的内置对象。
    3. jsonpath返回的是一个列表
  3. Python中运行js代码--两个模块--反爬时会用到

    1. js2py,本质上将js代码翻译成Python代码
    2. pyexecjs,已经停止更新了

    数据的清洗

    1. 数据的一致性---单位是否统一
    2. 数据的完整性---出版社信息
    3. 数据的唯一性---数据去重
    4. 数据的准确性---判断数据是否正确
    5. 数据的清洗
      1. 时间格式
      2. 数据类型转换---str_to_float
      3. 字符串处理

    爬虫数据存储

    1. 文件
      1. 首先打开文件
        1. open(文件,打开方式)
      2. json
        1. 使用ensure_ascii=False保持中文的形式
      3. csv
        1. 结构简单:列行数据分别以逗号和换行符来分割
        2. 使用便捷:可直接被pandas、numpy等数据处理模块或直接导入Excel中进行处理
    2. 数据库

      1. mysql
        1. 使用线程
        2. 更稳定
        3. 回滚实现更优秀
        4. 权限限制更完善
        5. 对编码比较敏感,连接时需要注意
      2. postgresql
        1. 使用进程
        2. 集群支持好
        3. 事务隔离做的更好,安全性更高
        4. 没有字符串长度限制,对字符支持更好一些
        5. 地址数据的良好支持,提供更多高级的功能
      3. MongoDB
        1. 读数据占据优势,适合存储热数据,可以充分利用机器的内存资源,查询效率高
        2. mysql更适合以插入、更新的任务模型
        3. 稳定性不如mysql,在事务支持方面薄弱
        4. 不用事先创建数据库
    3. 数据库的操作

      1. 使用pymysql连接和控制mysql数据库
        • 熟练编写sql语句
        • 注意连接参数---编码格式
      2. 连接和控制postgresql与mysql类似,仅仅是sql语句不同
      3. 使用pymono连接操作MongoDB数据库
    4. 使用sqlalchemy创建模型类

    5. 使用Django的ORM模型类---推荐使用

相关推荐