Python爬虫10-页面解析数据提取思

发布时间:2019-05-20 22:49:55编辑:auto阅读(2197)

    GitHub代码练习地址:正则1:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac15_RE1.py
               正则2:match、search、findall函数的使用案例:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac16_RE2.py


    一、页面解析和数据提取

      ①结构化数据: 先有的结构,在谈数据
      JSON文件
    JSON Path
    转换成Python类型进行操作(json类)
      XML文件
    转换成python类型(xmltodict)
    XPath
    CSS选择器
    正则
       ②非结构化数据:先有数据,再谈结构
        文本
       电话号码
        邮箱地址
    通常处理此类数据,使用正则表达式
       Html文件
      正则
      XPath
      CSS选择器

    二、正则简单应用
    正则表达式:一套规则,可以在字符串文本中进行搜查替换等
    python中正则模块是re
    使用大致步骤:
      1. compile函数将正则表达式的字符串编译为一个Pattern对象
      2. 通过Pattern对象的一些列方法对文本进行匹配,匹配结果是一个Match对象
      3. 用Match对象的方法,对结果进行操纵
    正则常用方法:
    match: 从开始位置开始查找,一次匹配
    search:从任何位置查找,一次匹配, 案例v25
    findall: 全部匹配,返回列表, 案例v26
    finditer: 全部匹配,返回迭代器, 案例v26
    split: 分割字符串,返回列表
    sub:替换
    匹配中文
    中文unicode范围主要在[u4e00-u9fa5]

    贪婪与非贪婪模式
    贪婪模式: 在整个表达式匹配成功的前提下,尽可能多的匹配
    非贪婪模式: xxxxxxxxxxxxxxxxxxxxxx, 尽可能少的匹配
    python里面数量词默认是贪婪模式
    例如:
    查找文本abbbbbbccc
    re是 ab*(*表示可以有一个或多个,也可以没有)
    贪婪模式: 结果是abbbbbb
    非贪婪: 结果是a

关键字