数据云 发表于 2019-8-7 19:13:47

爬虫学习之正则表达式(一)

本帖最后由 数据云 于 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 *****

zltzlt 发表于 2019-8-7 19:16:46

Good

DT_Nelson 发表于 2019-8-7 19:38:49

{:10_279:}{:10_275:}

falseh 发表于 2019-8-8 08:00:52

给答案

chang123 发表于 2019-8-9 09:10:07

看看

蒂法 发表于 2019-8-13 16:41:31

枫语惊天 发表于 2019-8-14 09:45:26

well

奔跑的石头儿 发表于 2019-8-14 20:24:47

感谢楼主无私分享

980200254 发表于 2019-8-14 21:57:37

GOOd

lucky邪神 发表于 2019-8-15 01:56:54

想搞清楚re.search(r'\.','I love FishC.com')中的r不是代表不转意吗

孙夏晨 发表于 2019-8-15 11:21:31

好好学习

软件菜鸟阿飞 发表于 2019-8-16 10:08:16

11

panheng 发表于 2019-8-16 11:01:06

我也正在学习正则,但是该表达式在第四段3位时无法正确回馈,求教
re.search(r'((?\d?\d|2\d|25)\.){3}(?\d?\d|2\d|25)','12.145.32.255')

Mr.I 发表于 2019-8-16 23:48:14

nice

EternalRed 发表于 2019-8-17 00:53:31

学到了!{:5_109:}

哈哈呵呵哒哒 发表于 2019-8-18 15:04:43

感谢分享!

新学 发表于 2019-8-18 23:39:29

{:10_279:}{:10_281:}{:10_254:}

nnmeng 发表于 2019-8-22 00:04:40

学习

spider792 发表于 2019-8-26 15:57:17

感谢

f190622996 发表于 2019-9-9 09:58:48

学习!!!
页: [1] 2
查看完整版本: 爬虫学习之正则表达式(一)