爬虫学习之正则表达式(一)
本帖最后由 数据云 于 2019-8-7 19:35 编辑本人也是小白,在努力学习爬虫,正则在爬虫中必不可少。
小伙伴们在阅读时发现文章写的有问题的地方请及时指出,我及时纠正。
希望小伙伴们看了之后有些收获,大家有问题及时指出多多交流。
下面附上学习未使用正则的爬虫链接,请多多指教: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'','I love FishC.com')
输出 <re.Match object; span=(2, 3), match='l'>
表示匹配 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'','192.168.2.68')是否有返回值?匹配到的是什么呢?为什么呢?
2. 别忘了本篇文章的目的是匹配IP地址,那用什么表达式抓取IP地址呢?
3. 扩展——限定字符
**** Hidden Message ***** Good {:10_279:}{:10_275:} 给答案 看看
恶 well 感谢楼主无私分享
GOOd 想搞清楚re.search(r'\.','I love FishC.com')中的r不是代表不转意吗 好好学习
11 我也正在学习正则,但是该表达式在第四段3位时无法正确回馈,求教
re.search(r'((?\d?\d|2\d|25)\.){3}(?\d?\d|2\d|25)','12.145.32.255') nice 学到了!{:5_109:} 感谢分享! {:10_279:}{:10_281:}{:10_254:} 学习
感谢 学习!!!
页:
[1]
2