小白都能学会的Python基础 第九讲:综合实战5 - 正则表达式提取baiduxinwen

1.华小智系列 - Python基础(案例版)

以下详细内容请点击获取。

第九讲:综合实战5 - 正则表达式提取baiduxinwen

正则表达式是一个非常好用的提取信息的手段,它可以帮助提取文本中所需信息,而且掌握了正则表达式后,不仅可以在爬虫中运用它来提取网页信息,在普通的文本信息中,也可以通过正则表达式来提取所需的内容,这是BeautifulSoup、pquery和Xpath这些专门用来解析网页源代码的库所不能比拟的。

1.正则表达式基础1 - findall方法

首先拿一个简单的例子来演示下正则表达式的作用,比如想提取’Hello 123 world’中的3个数字,可以通过如下代码实现:

import re
a = 'Hello 123 world'
result = re.findall('\d\d\d' , a)
print(result)

首先引入正则表达式re库,其中re这个库是Python自带的,所以不用额外安装。
然后解释下findall方法的使用规则,如下图所示,re.findall是根据匹配规则在原始文本中找寻所需的内容。这里的匹配规则为:‘\d’表示匹配一个数字,’\d\d\d’就表示匹配三个数字,所以re.findall(‘\d\d\d’, content)就是在content中寻找连续的三个数字。

2.正则表达式基础2- 非贪婪匹配之(.*?)

下面来介绍下一些常用的匹配规则的符号,注意都是英文格式下的符号。
在这里插入图片描述
上面的内容看似很多,不过读者不用担心,因为在实战中,大部分情况下需要用到的只有这两种情况:(.?)与.?。这里简单讲解一下里面的换行符\n和制表符\t,简单来说,\n表示换行(相当于在编辑WORD时用到的Enter键),\t为制表符(相当于按一下Tab键或者是按八下空格键)。在网页源代码里经常会看到换行及空格,那些在网页源代码里其实就是\n换行符及\t制表符。

3.正则表达式基础3 - 非贪婪匹配之.*?

如果说(.?)是用来获取文本A与文本B之间的内容,那.?是用来做什么的呢?如下图所示,它的作用简单来说是表示文本C和文本D之间的内容,这是因为文本C和文本D中间的内容可能是经常变动没有办法写到匹配规则里,或者说内容较多我们不想写到匹配规则里。

4.正则表达式基础4 - 自动考虑换行之修饰符re.S介绍

修饰符有很多,用的最多的就是re.S,它的作用就是在findall查找的时候,可以自动考虑到换行的影响,使得.*?可以匹配换行。它的使用方法如下,加上re.S就可以自动考虑换行了。

5.正则表达式基础5 - 小知识点补充

(1) sub()函数
sub()函数中的sub是英文substitute(替换)的缩写,它的具体使用格式是:re.sub(需要替换的内容,替换值,原字符串),主要就是用来清洗正则表达式获取到的内容,比如说,我们之前获取的到的新闻标题,其实有点瑕疵:

6.实战!baidu新闻标题、网址、日期及来源解析

在本小节我们将之前学习的内容做一个汇总,展示下一个完整网页爬虫的基本步骤。

7.大作业及后续内容

讲到这里,Python基础课就告一段落啦,虽然说是叫做Python基础课,其实它也可以叫做商业爬虫入门课了。我这边给大家留个大作业,算是作为一个学业总结。

8、课程相关资源

拓展:Python进阶的其他应用
https://shimo.im/docs/vp6KVJXR8tqWxgXR/ 《华小智智能平台课程(课表)》,可复制链接后用石墨文档 App 或小程序打开

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值