php用正则表达抓取网页中文章(聚焦爬虫过程中数据解析的第一类,你知道吗? )
优采云 发布时间: 2022-03-29 18:05php用正则表达抓取网页中文章(聚焦爬虫过程中数据解析的第一类,你知道吗?
)
我一直觉得正则表达式非常少见。今天的学习真的很特别。这真的很难理解,但重要的是要学习一些简单的元字符来提取数据。我们不需要自己写,其实可以复制;
有很多在线正则表达式测试,如菜鸟教程、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) .*? 惰性匹配 匹配少的,较短的
#! 爬虫用的最多的就是惰性匹配
#! 玩儿吃鸡游戏,晚上一起玩游戏,玩游戏吗?
#? 玩儿.*游戏 -- 匹配结果是 :玩儿吃鸡游戏,晚上一起玩游戏,玩游戏
#? 玩儿.*?游戏 -- 匹配结果是:玩儿吃鸡游戏
#? 玩.*?游戏 -- 匹配结果是 玩儿吃鸡游戏 玩游戏 玩游戏
#! 匹配标签的内容 周杰伦林俊杰
#? .* -- 匹配结果是
#! 周杰伦林俊杰
#? .*? -- 匹配结果是
#! 周杰伦
#? .*? -- 匹配结果是
#! 周杰伦林俊杰
#? .*?
#! 周杰伦
#! 林俊杰
'''