|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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. 扩展——限定字符
|
评分
-
查看全部评分
|