Python爬虫3--正则表达式

本文介绍了Python正则表达式的基础,包括常用符号、预定义字符集、数量词和边界匹配。讲解了re模块的search、sub和findall方法,并通过实例展示了如何在爬虫中应用。接着,分享了爬取《斗破苍穹》全文小说和糗事百科段子信息的爬虫思路和代码片段。
摘要由CSDN通过智能技术生成

目录

4.1正则表达式常用符号

4.1.1一般字符

4.1.2预定义字符集

4.1.3数量词

4.1.4边界匹配

4.2re模块及其方法

4.2.1search函数

4.2.2sub()函数

4.2.3findall函数

4.3爬取《斗破苍穹》全文小说

4.3.1爬虫思路分析

4.3.2爬虫代码(1)

4.4爬取糗事百科网的段子信息

4.4.2爬虫代码及分析


4.1正则表达式常用符号

4.1.1一般字符

        正则表达式的一般字符有3个如下表

字符 含义
. 匹配任意单个字符
\ 转义字符(把有特殊含义的字符转换成字面意思)
[...] 字符集。对应字符集中的任意字符

        说明:

        (1)“.”字符为匹配任意单个字符。例如,a.c可以的匹配结果为abc、aic、a&c等,但不包括换行符。

        (2)“\”字符为转移字符,可以把字符改变为原来的意思。听上去不是很好理解,例如“.”字符是匹配任意的单个字符,但有时不需要这个功能,只想让它代表一个点,这时就可以使用“\.”,就能匹配"."了。

4.1.2预定义字符集

        正则表达式预定义字符集共有6个如下表所示

预定义字符集 含义
\d 匹配一个数字字符。等价于【0-9】
\D

匹配一个非数字字符。等价于【^0-9】

\s 匹配任何空白字符,包括空格、制表符、换页符等。等价于【\f\n\r\t\v】
\S 匹配任何非空白字符。等价于【^\f\n\r\t\v】
\w 匹配不包括下划线的任意单词字符。等价于【A-Za-z0-9】
\W 匹配任何非单词字符。等价于【^A-Za-z0-9】

        正则表达式的预定义字符集易于理解,在爬虫实战中,常常会匹配数字而过滤掉文字部分的信息。例如“数字 3450”,只需要数字信息,通过“\d+”来匹配数据,“+”为数量词,表示1次或无限次,这样便可以匹配到所有的数字信息。

4.1.3数量词

        正则表达式中的数量词列表

数量词 含义
* 匹配前一个字符0次或无限次
+ 匹配前一个字符1次或无限次
匹配前一个字符0次或1次
{m} 匹配前一个字符m次
{m,n} 匹配前一个字符m到n次

4.1.4边界匹配

        边界匹配的关键符号如下表

边界匹配 含义
^ 匹配字符串开头
$ 匹配字符串结尾
\A 仅匹配字符串开头
\z 仅匹配字符串结尾

        介绍一下(.*?),“()”表示括号的内容作为返回结果,“.*?”是非贪心算发,匹配任意的字符。例如:

import re

a = 'xxIxxjshdxxlovexxsffaxxpythonxx'

infos = re.findall('xx(.*?)xx',a)

print(info)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值