Python -- 基础爬虫

关于爬虫(入门)

2018/09/18


正则表达式(一种进行数据筛选的表达式)

  • 原子(正则表达式最基本组成单位)

    • 普通字符字符串、非打印字符\n、通用字符、原子表。
    • 导入正则表达式:import re
      eg:result=re.search(‘yue’,‘http://www.baidu.com’)
    • 通用字符(通配符,可以匹配一系列东西):
      \w:匹配任意一个字母数字下划线
      \d:匹配任意一个十进制数
      \s:匹配任意一个空白字符
      \W:匹配\w相反东西(同理\D、\S)
      eg:

    result=re.search(’\w\dpython\w’,‘fjfj22pythond’)
    print(result)
    <re.Match object; span=(4, 13), match=‘22pythond’>

  • 原子表
    eg:

    result=re.search(‘pyth[own]n’,‘fjfj22pythwnd’)
    #任意o、w、n其一即可
    print(result)> print(result)
    <re.Match object; span=(6, 12), match=‘pythwn’>

  • 元字符(正则表达式中特殊含义的字符)

    • ^:匹配开始位置
      $:匹配结束位置
      *:匹配大于0次、1次、多次前面的原子
      ?:匹配0次、1次前面的原子(也是懒惰模式)
      +:匹配大于0次前面的原子
      {}:里面加数字,表示前面的原子共出现多少次(包括前面的数);里面数字n加,表示至少出现n次;数字n1+,+数字n2,至少n1至多n2。
      |:模式选择符,或
      ():用于提取内容
      .:匹配除了换行符之外任意字符
  • 模式修正符(不改变正则表达式的前提下,通过模式修正改变正则表达式的含义,从而实现一些匹配结果的调整等功能)

    • I:忽略正则表达式大小写
      M:多行匹配
      L:本地化识别匹配(这是个啥?)
      U:根据unicode字符解析我们的字符
      S:让`.``也匹配换行符
      eg:

    result=re.search(‘python’,‘fjfj22Pythond’,re.I)
    print(result)> print(result)
    <re.Match object; span=(6, 12), match=‘Python’>

  • 贪婪模式(try more)、懒惰模式(try less)

result=re.search(‘p.n’,‘fjfj22Pythondy’,re.I)
#贪婪模式,结果Pythondy
result=re.search('p.
?n’,‘fjfj22Pythondy’,re.I)
#懒惰模式,结果Py

  • 正则表达式函数
    • re.match():从头搜索,头不匹配就没了

    result=re.search(‘p.*?n’,‘fjfj22Pythondy’,re.I)
    #结果none

    • re.search():任意位置搜索,但只出一个结果
    • 全局方式
      eg:

    result=re.compile(‘p.*?y’).findall(‘dhpjsfhydjpfy’)
    print(result)
    [‘pjsfhy’, ‘pfy’]

    扫描二维码关注公众号,回复: 4768296 查看本文章

猜你喜欢

转载自blog.csdn.net/BugOverseas/article/details/82762819