php用正则表达抓取网页中文章(聚焦爬虫过程中数据解析的第一类,你知道吗? )

优采云 发布时间: 2022-03-29 18:05

  php用正则表达抓取网页中文章(聚焦爬虫过程中数据解析的第一类,你知道吗?

)

  我一直觉得正则表达式非常少见。今天的学习真的很特别。这真的很难理解,但重要的是要学习一些简单的元字符来提取数据。我们不需要自己写,其实可以复制;

  有很多在线正则表达式测试,如菜鸟教程、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) .*? 惰性匹配 匹配少的,较短的

#! 爬虫用的最多的就是惰性匹配

#! 玩儿吃鸡游戏,晚上一起玩游戏,玩游戏吗?

#? 玩儿.*游戏 -- 匹配结果是 :玩儿吃鸡游戏,晚上一起玩游戏,玩游戏

#? 玩儿.*?游戏 -- 匹配结果是:玩儿吃鸡游戏

#? 玩.*?游戏 -- 匹配结果是 玩儿吃鸡游戏 玩游戏 玩游戏

#! 匹配标签的内容 周杰伦林俊杰

#? .* -- 匹配结果是

#! 周杰伦林俊杰

#? .*? -- 匹配结果是

#! 周杰伦

#? .*? -- 匹配结果是

#! 周杰伦林俊杰

#? .*?

#! 周杰伦

#! 林俊杰

'''

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线