一直感觉正则表达式挺难得,今日学习果然不同凡响,是真的难理解,不过重要的是学习一些简单提取数据的元字符就够用了,常用的什么身份证,Email,手机号码正则表达式都不用我们自己下手写,其实都可以Copy;
都有很多的在线正则表达式测试,比如菜鸟教程里面,OSCHINA里面的在线工具等;
都可以很好的帮助我们去写一些测试,多理解多动手敲一下就OK了~
最最主要的就是爬虫中对于网页标签内容和标签属性的抓取,就需要咱们的惰性匹配,一定要去理解和实践一些。
下面就是我学习的聚焦爬虫过程中数据解析的第一类:正则;最好把代码放到编辑器里面去浏览,效果会好一些,推荐VS Code。
#? 通用爬虫 聚焦爬虫 增量式爬虫
#? 聚焦爬虫:爬取页面中指定的页面内容 满足75%以上的需求
'''
编码流程:
(1)指定URL
(2)发起请求
(3)获取响应数据
(4)数据解析
(5)持久化存储
'''
#? 数据解析分类: 正则 bs4 xpath(重点学习,通用性比较强)
#* 数据解析原理
'''
解析的局部的文本内容都会存储在标签之间或者标签中的属性值
(1) 进行执行标签的定位
(2) 标签或者标签对应的属性中存储的数据值进行提取(解析)
'''
#? 正则表达式
'''
元字符
(1) . 匹配除换行符意外的任意字符
(2) w 匹配字母或数字或下划线
(3) s 匹配任意的空白符
(4) d 匹配数字
(5) n 匹配一个换行符
(6) t 匹配一个制表符
(7) ^ 匹配字符串的开始
(8) $ 匹配字符串的结尾
(9) W 匹配非字母或数字或下划线
(10) S 匹配非空白符
(11) D 匹配非数字 (9)
(12) a|b 匹配字符a或者字符b
(13) () 匹配括号内的表达式,也表示一个组
(14) [...] 匹配字符组中的字符
(15) [^...] 匹配除了字符组中字符的所有字符
量词
#? 比如 d{11}
* 重复零次或者更多次 {0,正无穷}
+ 重复一次或者更多次 {1,正无穷}
? 重复0次或者一次 {0,1}
{n} 重复n次
{n,} 重复n次或者更多次
{n,m} 重复n到m次
#! 贪婪匹配和惰性匹配
(1) .* 贪婪匹配 匹配所有
(2) .*? 惰性匹配 匹配少的,较短的
#! 爬虫用的最多的就是惰性匹配
#! 玩儿吃鸡游戏,晚上一起玩游戏,玩游戏吗?
#? 玩儿.*游戏 -- 匹配结果是 :玩儿吃鸡游戏,晚上一起玩游戏,玩游戏
#? 玩儿.*?游戏 -- 匹配结果是:玩儿吃鸡游戏
#? 玩.*?游戏 -- 匹配结果是 玩儿吃鸡游戏 玩游戏 玩游戏
#! 匹配标签的内容 周杰伦林俊杰
#? .* -- 匹配结果是
#! 周杰伦林俊杰
#? .*? -- 匹配结果是
#! 周杰伦
#? .*? -- 匹配结果是
#! 周杰伦林俊杰
#? .*?
#! 周杰伦
#! 林俊杰
'''



