网络爬虫

  • requests库的异常

    异常 说明
    requests.ConnectionError 网络连接错误异常,如DNS查询失败、拒绝连接等
    requests.HTTPError HTTP错误异常
    requests.URLRequired URL缺失异常
    requests.TooManyRedirects 超过最大重定向次数,产生重定向异常
    requests.ConnectTimeout 连接远程服务器超时异常
    requests.Timeout 请求URL超时,产生超时异常
    异常 说明
    resp.raise_for_status() 如果不是200,产生异常requests.HTTPError
  • re正则语法

    操作符 说明 实例
    . 表示任何单个字符
    [ ] 字符集,对单个字符给出取值范围 [abc]表示a、b、c,[a-z]表示a到z单个字符
    [^ ] 非字符集,对单个字符给出排除范围 [^abc]表示非a或b或c的单个字符
    * 前一个字符0次或无限次扩展 abc*表示ab、abc、abcc、abccc等
    + 前一个字符1次或无限次扩展 abc+表示abc、abcc、abccc等
    ? 前一个字符0次或1次扩展 abc?表示ab、abc
    | 左右表达式任意一个 abcldef 表示abc、def
  • 操作符 说明 实例
    {m} 扩展前一个字符m次 ab{2}c表示abbc
    {m,n} 扩展前一个字符m至n次(含n) ab{1,2}c表示abc、abbc
    ^ 匹配字符串开头 ^abc表示abc且在一个字符串的开头
    $ 匹配字符串结尾 abc$表示abc且在一个字符串的结尾
    () 分组标记,内部只能使用|操作符 (abc)表示abc,(abc|def)表示abc、def
    \d 数字,等价于[0-9]
    \w 单词字符,等价于[A-Za-z0-9_]
  • Re库主要功能函数

函数 说明
re.search() 在一个字符串中搜索匹配正则表达式的第一个位置,返回match对象
re.match() 从一个字符串的开始位置起匹配正则表达式,返回match对象
re.findal() 搜索字符串,以列表类型返回全部能匹配的子串
re.spli() 将一个字符串按照正则表达式匹配结果进行分割,返回列表类型
re.findite() 搜索字符串,返回一个匹配结果的迭代类型,每个送代元素是match对象
re.sub() 在一个字符串中替换所有匹配正则表达式的子串,返回替换后的字符串
最小匹配操作符
操作符 说明
*? 前一个字符0次或无限次扩展,最小匹配
+? 前一个字符1次或无限次扩展,最小匹配
?? 前一个字符0次或1次扩展,最小匹配
{m,n}? 扩展前一个字符m至n次(含n), 最小匹配
1
2
3
import re 
re.search(r'ph.*N', 'phgnerfndsn') # 贪婪匹配,默认匹配最长的
re.search(r'ph.*?N', 'phgnerfndsn') # 最小匹配,默认匹配最短的