Python爬虫10-页面解析数据提取思路方法与简单正则应用

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
posted @ 2019-03-19 05:21  chalee3  阅读(486)  评论(0编辑  收藏  举报