首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python爬虫之正则表达式中的一些提取方法

各位网友们,大家好,欢迎点进小编的文章,我是一个专一的小编,专业爆料娱乐圈最新热点,来阅读小编的文章了解娱乐圈的家常百态吧,不仅可以在百忙之中放松心情,还可以get到喜欢的明星八卦,茶余饭后又多了与朋友交流的话题,如若喜欢小编的文章,记得点赞关注哦!这是小编每日工作的动力呢,有了你们喜欢的肯定,小编会再接再厉,奉上热文,祝广大网友顺心如意,好运连连!

Python爬虫之正则表达式中的一些提取方法,运行结果如下:

可以看到,返回的列表中的每个元素都是元组类型,我们用对应的索引一次取出即可。

如果只是获取第一个内容,可以用search( )方法。当需要提取多个内容时,可以用findall( )方法。

sub( )

除了使用正则表达式提取信息外,有时候还需要借助它来修改文本。比如,想要把一串文本中的所有数字都去掉,如果只用字符串的replace( )方法,那就太烦琐了,这时可以借助sub( )方法。示例如下:

运行结果如下:

这里只需要给第一个参数传入\d+来匹配所有的数字,第二个参数为替换成的字符串(如果去掉该参数的话,可以赋值为空),第三个参数是原始字符串。

在上面的HTML文本中,如果想获取所有li节点的歌名,直接用正则表达式提取可能比较麻烦。比如,我们可以写成这样:

运行结果如下:

此时借助sub( )方法就比较简单了。可以先用sub( )方法将a节点去掉,只留下文本,然后再利用findall( )提取就好了:

运行结果如下:

可以看到,a节点经过sub( )方法处理后就没有了,然后再通过findall( )方法直接提取即可。可以看到,在适当的时候,借助sub( )方法可以起到事半功倍的效果。

compile( )方法

前面所讲的方法都是用来处理字符串的方法,最后再介绍一下compile( )方法,这个方法可以将正则字符串编译成正则表达式对象,以便在后面的匹配中复用。示例代码如下:

例如,这里有3个日期,我们想分别将3个日期中的时间去掉,这时可以借助sub( )方法。该方法的第一个参数是正则表达式,但是这里没有必要写3个同样的正则表达式,此时可以借助compile( )方法将正则表达式编译成一个正则表达式对象,以便复用。

运行结果如下:

小编写完一篇文章真的很不容易,好歹也是费劲了心思,就算不是最好的,但是肯定是最用心的,各位哥哥姐姐弟弟妹妹们,现编知道你们一定是最善良,最可爱的美男美女,一定会对小编的文章感动的,小编也别无所求,就是给小编点一个小小的关注和赞就行了,一边一定会在这里祝福大家的

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190210A0GF4Z00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券