鱼C论坛

 找回密码
 立即注册
查看: 3760|回复: 33

[技术交流] 爬虫学习之正则表达式(一)

[复制链接]
发表于 2019-8-7 19:13:47 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 数据云 于 2019-8-7 19:35 编辑

本人也是小白,在努力学习爬虫,正则在爬虫中必不可少。
小伙伴们在阅读时发现文章写的有问题的地方请及时指出,我及时纠正。
希望小伙伴们看了之后有些收获,大家有问题及时指出多多交流。
下面附上学习未使用正则的爬虫链接,请多多指教:[url=爬虫学习必看,无需任何三方模块,简单易懂 https://fishc.com.cn/thread-144206-1-1.html (出处: 鱼C论坛)]
如果你看了我这个爬虫,会发现是使用 find 查找字符串进行抓取的,这太复杂了,所以来学习正则吧!

下面我们一起来看正则表达式用法:本篇目的:匹配 IP 地址
一.  先导入 re 包  import re
二.  使用方法  re.search(r'匹配规则','需要匹配的内容')

        举例详解匹配规则:所有匹配返回都是返回第一个匹配的内容
                1. re.search(r'fishc','I Love fishic.com')
                输出        <re.Match object; span=(7, 12), match='fishc'>
                表示匹配 fishc 这段内容
               
                2. re.search(r'.','I love fishc.com')
                输出        <re.Match object; span=(0, 1), match='I'>
                "." 表示匹配 任意字符串,那怎样匹配 "." 呢,接着往下看

                3. re.search(r'\.','I love fishc.com')
                输出        <re.Match object; span=(12, 13), match='.'>
                表示匹配 . 这个符号,这里用到反斜杠进行转译就可以了,同理匹配 * + ? 等特殊符号

                4. re.search(r'\d','I love 123 com')
                输出        <re.Match object; span=(7, 8), match='1'>
                \d 表示匹配 0-9 任意一个数字

                5. re.search(r'[a-z]','I love FishC.com')
                输出        <re.Match object; span=(2, 3), match='l'>
                [a-z] 表示匹配 a-z 其中的任何一个字符

                6. re.search(r'ab{0,3}c','abbbc')
                输出        <re.Match object; span=(0, 5), match='abbbc'>
                ab{0,3}c  表示匹配含有 abc 的字符串,其中 b重复出现 的次数为0-3次
                b{n,m}    表示匹配  b重复出现 n-m 次

三.  列举了6个,相信小伙伴们已经学到不少了吧,在不上机的情况下请回答下面问题:

                1. re.search(r'[0-255]','192.168.2.68')  是否有返回值?匹配到的是什么呢?为什么呢?

                2. 别忘了本篇文章的目的是匹配IP地址,那用什么表达式抓取IP地址呢?

                3. 扩展——限定字符


游客,如果您要查看本帖隐藏内容请回复

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
风尘岁月 + 1 + 1 好货当赏

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-7 19:16:46 | 显示全部楼层
Good
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-7 19:38:49 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-8 08:00:52 | 显示全部楼层
给答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-9 09:10:07 | 显示全部楼层
看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-13 16:41:31 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-14 09:45:26 | 显示全部楼层
well
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-14 20:24:47 | 显示全部楼层
感谢楼主无私分享
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-14 21:57:37 | 显示全部楼层
GOOd
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-15 01:56:54 | 显示全部楼层
想搞清楚re.search(r'\.','I love FishC.com')中的r不是代表不转意吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-15 11:21:31 | 显示全部楼层
好好学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-16 10:08:16 | 显示全部楼层
11
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-16 11:01:06 | 显示全部楼层
我也正在学习正则,但是该表达式在第四段3位时无法正确回馈,求教
re.search(r'(([01]?\d?\d|2[0-4]\d|25[0-5])\.){3}([01]?\d?\d|2[0-4]\d|25[0-5])','12.145.32.255')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-16 23:48:14 From FishC Mobile | 显示全部楼层
nice
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-17 00:53:31 | 显示全部楼层
学到了!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-18 15:04:43 | 显示全部楼层
感谢分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-18 23:39:29 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-22 00:04:40 | 显示全部楼层
学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-26 15:57:17 | 显示全部楼层
感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-9-9 09:58:48 | 显示全部楼层
学习!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 08:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表