爬虫识别-关键页面最小访问间隔-上|学习笔记

简介: 快速学习爬虫识别-关键页面最小访问间隔-上。

开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第五阶段爬虫识别-关键页面最小访问间隔-上】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/673/detail/11708


爬虫识别-关键页面最小访问间隔-上

 

目录:

//1抽取出数据中的 IP 和数据的访问时间及 url

//2遍历数据库中的关键页面的规则

//3使用 url 与规则进行匹配

//4调用 groupByKeyAndWindow,得到的结果是 key(IP)和 value的 list(时间的list)

//5获取到ip和时间的list

 

1-5步已经做过,复制粘贴前面代码,修改

删除 val ipAndCook,抽取出数据中的 IP 和数据的访问时间及 url

获取时间 val time=.timeIso8601。value 改为 criticalPagesList

def criticalPagesMinTime(processedData:DStream[ProcessedData

],criticalPagesList:ArrarBuffer[String]:DStream[String,Itera

processedData.map(message=>{

//1抽取出数据中的 IP 和数据的访问时间及 url

//获取 ip

val ip =message.remoteAddr

//获取url

val url=message.request

//获取 cook

val time=message.timeIso8601

//实例一个是否是关键页面的 flag

var flag=false 

//2 遍历数据库中的关键页面的规则。

for(criticalPages<-criticalPagesList){

//3 使用 url 与规则进行匹配,

拿到 List 循环遍历匹配,匹配成功标记 false 变为 true,匹配失败 else 不是关键页面。是关键页面返回 ip 和 time,不是关键页面。

if(url.matches(criticalPages)){//若数据的 url 能与规则的任意一个匹配成功,表示此 url 是关键页面

flag=true

}else{//若数据的 url 与规则的任意一个没有匹配成功,表示此 url 不是关键页面

}

}

if(flag){ //是关键页面,将 ip 和时间返回

(ip,time)

}else{ //不是关键页面,将“”和””返回

(“”,””)

}

//4调用 groupByKeyAndWindow,得到的结果是 key(IP)和 value的 list(时间的list)

groupByKeyAndWindow(Seconds(6),Seconds(2))

val ipAndCook=processedData.map(message=>{

拿到 ip 和时间做接收

val ipAndTime=processedData.map(message=>{

//遍历 ipAndCook

val ipCookCount=ipAndTime.map(message=>{

//5获取到 ip 和时间的 list

获取时间的 List,cookList 改为 timeList

//获取 ip

val ip=message._1

//获取时间的 List

val timeList=message._2

遍历时间的 List,将此字符串类型国际时间转换成普通时间(时间戳)

拿到时间戳后要求时间差,至少有两个时间类型才能求时间差。

假设一批数据过来,只有一个,没办法求时间差,两个以上才能求时间差。

做判断,如果时间 timeList.size>1 可以计算时间戳,否则 else 或1个返回“”和0。有两个时求最小时间差,将 ip 和最小时间差返回。

//两个以上的数据才能计算时间差

If(timeList.size>1){

//6遍历时间的 list,将此字符串类型国际时间转换成普通时间(时间戳)

//(ip,???)

}else{

(“”,0)

}

相关文章
|
数据采集 SQL 消息中间件
数据预处理-历史爬虫判断-实现代码及效果|学习笔记
快速学习数据预处理-历史爬虫判断-实现代码及效果
151 0
数据预处理-历史爬虫判断-实现代码及效果|学习笔记
|
数据采集 监控 前端开发
数据预处理-历史爬虫判断-需求与实现思路|学习笔记
快速学习数据预处理-历史爬虫判断-需求与实现思路
140 0
数据预处理-历史爬虫判断-需求与实现思路|学习笔记
|
数据采集 算法 大数据
爬虫识别-总结及效果| 学习笔记
快速学习爬虫识别-总结及效果
爬虫识别-总结及效果| 学习笔记
|
数据采集 存储 消息中间件
爬虫识别-准备离线计算数据| 学习笔记
快速学习爬虫识别-准备离线计算数据
爬虫识别-准备离线计算数据| 学习笔记
|
数据采集 大数据 数据库
爬虫识别-指标碰撞-准备数据代码实现| 学习笔记
快速学习爬虫识别-指标碰撞-准备数据代码实现
爬虫识别-指标碰撞-准备数据代码实现| 学习笔记
|
数据采集 算法 大数据
爬虫识别-指标碰撞-准备数据 avi| 学习笔记
快速学习爬虫识别-指标碰撞-准备数据 avi
爬虫识别-指标碰撞-准备数据 avi| 学习笔记
|
数据采集 存储 算法
爬虫识别-指标碰撞-代码实现| 学习笔记
快速学习爬虫识别-指标碰撞-代码实现
爬虫识别-指标碰撞-代码实现| 学习笔记
|
数据采集 分布式计算 NoSQL
爬虫识别-爬虫写入 Redis-效果及总结| 学习笔记
快速学习爬虫识别-爬虫写入 Redis-效果及总结
爬虫识别-爬虫写入 Redis-效果及总结| 学习笔记
|
数据采集 算法 NoSQL
爬虫识别-指标碰撞-实现思路| 学习笔记
快速学习爬虫识别-指标碰撞-实现思路
|
数据采集 算法 大数据
爬虫识别-指标碰撞-代码实现总结| 学习笔记
快速学习爬虫识别-指标碰撞-代码实现总结