python爬虫系列(三)

系统 1869 0

常用正则表达式

如果没猜错的话当大家看了我写的python爬虫系列二的话我想你们心中一定有千万匹马儿跑过,其实我想说的是关于上篇表达式的内容你们只需要了解一下即可因为上篇主要是为了引入一些概念来解释爬虫爬的到底是啥,感受感受。那么接下来我就来介绍一些常用的内容
\w 匹配字母数字及下划线
\W 匹配非字母数字及下划线
\s 匹配任意空白字符,等价于 [\t\n\r\f].
\S 匹配任意非空字符
\d 匹配任意数字,等价于 [0-9].
\D 匹配任意非数字
re.I 忽略大小写
re.M 多行模式
re.S 即为 . 并且包括换行符在内的任意字符(. 不包括换行符)
集字符[ ]
* 表示一个元素可出现0或多次
+表示出现一次或多次
?非贪婪模式
( )子模式
{ }一个元素或模式出现{m,n}m到n次,n可以不写为至少几次{m,}

实战演练

字符串python

            
              
                import
              
               re 
string
              
                =
              
              
                'python'
              
              
                #我们匹配出python
              
              
path 
              
                =
              
               re
              
                .
              
              
                compile
              
              
                (
              
              
                'p\w\w\w\wn'
              
              
                ,
              
              re
              
                .
              
              I
              
                )
              
              
path
              
                .
              
              findall
              
                (
              
              string
              
                )
              
              
                #这里和re.findall(path,string)是一样的
              
            
          

这里我们用了\w来匹配。接下来我集字符和*

            
              
                import
              
               re 
string
              
                =
              
              
                'python'
              
              
                #我们匹配出python
              
              
path 
              
                =
              
               re
              
                .
              
              
                compile
              
              
                (
              
              'p
              
                [
              
              y
              
                -
              
              z
              
                ]
              
              
                *
              
              thon
              
                ,
              
              re
              
                .
              
              I
              
                )
              
              
path
              
                .
              
              findall
              
                (
              
              string
              
                )
              
            
          

也可以这样`

            
              
                import
              
               re 
string
              
                =
              
              
                'python'
              
              
                #我们匹配出python
              
              
path 
              
                =
              
               re
              
                .
              
              
                compile
              
              
                (
              
              
                'p.*'
              
              
                ,
              
              re
              
                .
              
              I
              
                )
              
              
path
              
                .
              
              findall
              
                (
              
              string
              
                )
              
            
          

或者

            
              
                import
              
               re 
string
              
                =
              
              
                'python'
              
              
                #我们匹配出python
              
              
path 
              
                =
              
               re
              
                .
              
              
                compile
              
              
                (
              
              'py
              
                {
              
              
                0
              
              
                ,
              
              
                1
              
              
                }
              
              
                .
              
              
                *
              
              
                ,
              
              re
              
                .
              
              I
              
                )
              
              
path
              
                .
              
              findall
              
                (
              
              string
              
                )
              
            
          

接下来是贪婪模式和非贪婪模式(默认贪婪)
string= pythonnn

            
              
                import
              
               re 
string
              
                =
              
              
                'pythonnn'
              
              
                #我们匹配出python
              
              
path 
              
                =
              
               re
              
                .
              
              
                compile
              
              
                (
              
              'p
              
                .
              
              
                *
              
              n
              
                ,
              
              re
              
                .
              
              I
              
                )
              
              
path
              
                .
              
              findall
              
                (
              
              string
              
                )
              
            
          

你会发现你匹配的是pythonnn
所以我们加个?

            
              
                import
              
               re 
string
              
                =
              
              
                'python'
              
              
                #我们匹配出python
              
              
path 
              
                =
              
               re
              
                .
              
              
                compile
              
              
                (
              
              'p
              
                .
              
              
                *
              
              ?n
              
                ,
              
              re
              
                .
              
              I
              
                )
              
              
path
              
                .
              
              findall
              
                (
              
              string
              
                )
              
            
          

最后请出我们的()
这个是什么呢,演示一下

            
              
                import
              
               re 
string
              
                =
              
              
                'python'
              
              
                #我们匹配出ython
              
              
path 
              
                =
              
               re
              
                .
              
              
                compile
              
              
                (
              
              
                'p(.*)'
              
              
                ,
              
              re
              
                .
              
              I
              
                )
              
              
path
              
                .
              
              findall
              
                (
              
              string
              
                )
              
              
                #改一下又是什么呢我们匹配thon
              
              
path 
              
                =
              
               re
              
                .
              
              
                compile
              
              
                (
              
              
                'y(.*)'
              
              
                ,
              
              re
              
                .
              
              I
              
                )
              
              
path
              
                .
              
              findall
              
                (
              
              string
              
                )
              
            
          

结果我想你已经猜到了吧?来慢慢想一下敲一下。那么常用的基本上就这样上一篇不要求你一定要记下来但是这一篇如果你想要成为高手,最好记住!!!

这里还要强调一个点那就是匹配特殊元素比如www.python.ory中.可以表示任意元素所以它可以和wwwxpythonmory匹配所以要对其转义但是要加\ \转义即 :www\\.python\\.ory或者r’www\.python\.ory’或者直接用re.escape()方法

自动搜索爬虫

看名字你可能觉得好高大上好像不是我等可以接触的,其实不然。现在打开你的浏览器

在这里插入图片描述

输入如下内容/s wd=python
在这里插入图片描述
猜到什么了么!!下篇继续(介绍实战完urllib.request再来解析库和request不要着急慢慢来)

日常名言结束: 经验显示,成功多因于赤忱,而少出于能力。胜利者就是把自己身体和灵魂都献给工作的人。—— 查尔斯·巴克斯顿


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论