Python爬虫内正则模块【re库】的用法详解【重点】


​🕶️师兄简介:机械专业,通过自学成功进入IT领域,求学期间实现经济独立,对自学、兼职、计算机、学习规划等有独到见解!「点击了解更多


🤖师兄致力解决在大学生活与学习中遇到的各种问题.


🎁 公众号「渣师兄」内回复「渣学」可获得超 5T 的新生见面礼!


🔗官方网站: 渣学网 →「zhaxueit.cn」→ 大学生活与学习一站式解决方案.


🙏找师兄帮忙「无偿」请➕💓:zhaxueit

📓进资源群「每日分享」【免费】(坑位有限)也请➕💓:zhaxueit 并备注「进群」

👀个人主页:@渣师兄 ,欢迎关注、私信师兄!


🐐 登高必自卑,行远必自迩.
🍇 我始终坚信越努力越幸运
⭐️ 那些打不倒我们的终将会让我们变得强大
🍑 希望在编程道路上深耕的小伙伴都会越来越好



Python被正则模块(re)的使用

正则模块 re 抓取数据的两种方法形式

第一种形式(直接使用findall(查找数据)方法):

data_list = re.findall(正则表达式,待匹配字符串,re.S)

第二种形式(先创建正则编译对象在调用findall等方法):

pattern = re.compile(正则表达式,re.S)
data_list = pattern.findall(待匹配字符串)

注意事项:一般大佬都用第二种形式,因为正则写好一个可以多次调用

图示:

image-20211013092723573

正则模块 re 方法的 re.S参数的作用

作用:正则表达式中的元字符 . 可以匹配任意字符(除了换行符/n),在findall等方法内部加上参数 re.S后 元字符 . 就可以匹配换行符/n啦

注意:在抓取 html 代码时一定不要忘记写 re.S参数,因为 html 代码有很多换行符

图示:

image-20211013092734436

正则表达式贪婪模式以及非贪婪模式的注意事项

元字符 ?功能: ? 前一个字符出现1次或者0次

贪婪模式:在满足匹配规则的前提下尽可能多的匹配数据

非贪婪模式:在满足匹配规则的前提下尽可能少的匹配数据

注意事项:

1:贪婪模式与非贪婪模式说的都是在匹配多个字符时才适用,即元字符 * + ?

2:python程序默认是贪婪模式匹配数据

3:在匹配多个数据的元字符(* + ?)后面加上 ? 就可将贪婪模式转变为非贪婪模式,注意一定是在匹配多个元字符后面加才管用!!!

正则表达式单个分组以及多个分组的用法

用法【单个分组】:如果在正则表达式的一部分加上单个分组,也就是一个() 那么在调用 findall方法时,只将符合分组内的数据提取到列表内!

用法【多个分组】:如果在正则表达式的一部分加上多个分组,也就是多个() 那么在调用 findall方法时,将符合多个分组内的数据先保存到一个元组内,然后在匹配其他符合分组的数据,再次存放到另一个元组内,然后在将多个元组存放至列表中【列表内嵌套元组】

图示【单个分组】 【多个分组】:

image-20211013092752765

正则表达式匹配html数据的技巧【重点】

目标:掌握正则表达式匹配 html 代码的技巧

正则表达式匹配 html 代码的技巧

实例html代码如下(提取电影名、主演、上映时间):

image-20211013092804554

正则表达式可以这么写!!

对应的正则表达式:

<div class="movie-item-info">.*?<a href="/films/[0-9]+" title="(.*?)".*?<p class="star">\s+主演:(.*?)\s+</p>\s+<p class="releasetime">上映时间:(.*?)</p>

书写正则的技巧:

1:第一个包含类的标签一定要写出来(例如 <div class="movie-item-info">)这样正则可一下就找出来匹配的数据在那个标签类

2:待匹配的数据要加上分组,一般都是这么写 (.*?),这样可被findall方法直接匹配出来

3:待匹配数据的前一个标签一般要按照给出的写出来(也可以不写!)

4:.*?正则表达式是一个很好的东西哦,一定要学会使用!!!

5:因为加上了 re.S 参数,所以 . 可以匹配任何数据

图示:

image-20211013092844399

未完待续…

  • 27
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

渣师兄

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值