Python爬虫(5天入门)第二天

本文介绍了Python爬虫中正则表达式的使用,包括正则支持的普通字符、元字符、量词,以及惰性匹配的概念。详细讲解了Python内置的re模块,包括re模块的功能、常用方法如findall、search和finditer,以及如何处理反爬策略。文中还给出了使用正则提取网页信息和处理反爬的实例。
摘要由CSDN通过智能技术生成

三.正则表达式

1.正则表达式

正则表达式是用来匹配字符串的一门表达式语言。
测试在线网站:https://tool.oschina.net/regex/
在这里插入图片描述

(1)正则支持普通字符

(2)元字符

用一个符号来匹配一堆内容:

  • \d——匹配一个数字(0-9)
  • \D——除了数字,全部匹配出来

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • \w——匹配一个数字,字母,下划线
  • \W——除了数字,字母,下划线全部匹配出来

在这里插入图片描述
在这里插入图片描述

  • 匹配自定义的字符组:[自定义字符]
  • [ ^自定义字符]:除了自定义字符都可以匹配

在这里插入图片描述

  • “.”:除了换行符都可以匹配(空格也可以匹配)

在这里插入图片描述

(3)量词

量词:控制前面元字符出现的频次。

  • “+”:前面的元字符出现一次或多次。

在这里插入图片描述

  • “*”:前面的元字符出现0次或多次,具有贪婪机制——尽可能多的匹配到相应结果

例子:并不是数字的也被匹配了
在这里插入图片描述

  • “?”:前面的元字符出现0次或一次。

在这里插入图片描述

2.惰性匹配

  • “.*”——贪婪匹配:尽可能匹配到更多的

在这里插入图片描述

  • “.*?”——惰性匹配:匹配到距离目标字符最近的内容
作用:匹配页面源代码html中的信息

在这里插入图片描述

四.python内置re模块

1.re模块

(1)什么是re模块

在Python中需要通过正则表达式对字符串进⾏匹配的时候,可以使⽤⼀个python自带的模块,名字为re。

正则表达式的大致匹配过程是:
1.依次拿出表达式和文本中的字符比较,
2.如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。
3.如果表达式中有量词或边界,这个过程会稍微有一些不同。

r:在带有 ‘r’ 前缀的字符串字面值中,反斜杠不必做任何特殊处理。 因此 r"\n" 表示包含 ‘’ 和 ‘n’ 两个字符的字符串,而 “\n” 则表示只包含一个换行符的字符串。

(2)常用方法介绍

  • re.findall:直接返回所有匹配结果——适用于匹配结果少的
import re
result = re.findall(r"\d+","电话号码:15686900489,ID:20021107")
print(result)

在这里插入图片描述

  • re.search:返回的是re.Match对象,只匹配的了第一个结果就返回对象
result = re.search(r"\d+","电话号码:15686900489,ID:20021107")
print(result)

在这里插入图片描述

#查看匹配对象
print(result.group())

在这里插入图片描述

  • re.finditer:将匹配
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值