爬虫识别-关键页面的 cook 统计-需求及思路|学习笔记

简介: 快速学习爬虫识别-关键页面的 cook 统计-需求及思路

开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第五阶段爬虫识别-关键页面的 cook 统计-需求及思路】学习笔记,与课程紧密联系,让用户快速学习知识。

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


爬虫识别-关键页面的 cook 统计-需求及思路

 

目录:

一、目标

二、需求

三、设计

四、详细思路

 

一、目标

//6 按 IP 地址聚合-某个 IP,5分钟内访问关键页面的 cookie 数

前提是关键页面,必须是关键页面的 cookie 数,cookie 要去重。如果 cookie 出现10次,作为1次,看 cookie 的种类。是关键页面统计 cookie 做去重。

目标:计算出某个 IP,5分钟内关键页面的访问次数的 Cookie 数

 

二、需求

Cookie 可以衡量是否是爬中的指标,cookie 中 JSESSIONID 可以用来区别每一个 cookie,只要计算出5分钟内所有访问过关键页面的 cookie,将每个 cookie 的 JSESSIONID 取出来进行去重汇总计算,前提必须是关键页面,只有爬虫更关心关键页面。

如果爬虫访问关键页面,为了防止反爬虫技术来回切换 cookie,切换的越多暴露可能性越大。统计 JSESSIONID 出现的次数越多,代表来回切换的次数越多,是爬虫的可能性就越大。普通用户不会频繁的切换 cookie,次数越多是爬虫可能性越大。

企业系统内设置了此指标的阈值。根据5分钟内关键页面的访问次数的 Cookie 数做阈值,如果访问的 cookie 大于阈值,很可能是爬虫。

根据数据计算出的结果(关键页面访问量)超过设置的阈值,那么他很有可能是爬虫。

5分钟内关键页面的访问次数的 Cookie 数<4

image.png

 

三、设计

1、拿到 kafka  数据,关键页面的广播变量,窗口时间,滑动时间进行计算

关键页面信息添加到广播变量,前提是关键页面,必须拿到关键页面,广播变量里拿到所有节点。

2、从 kafka 数据中取到 request,匹配关键页面

读取 url,前提是关键页面,拿到 url 的正则表达式,只有拿到 url 与关键页面的正则表达式匹配,匹配上证明是关键页面。

3、匹配成功,记录(remoteaddr,JSESSIONID),并做

4、groupByKeyAnd

Window操作,将相同 remoteaddr 的JSESSIONID统计到

ArrayBuffer中

匹配成功表示是关键页面,获取(remoteaddr,JSESSIONID)进行输出,如果匹配失败返回空。调用 groupByKeyAndWindow 进行汇总,得到 ip 和对应的 JSESSIONID list,将 JSESSIONID list 放到 ArrayBuffer 里汇总。

5、拿到上面的数据进行去重 count,最终封装数据(remoteaddr,JSESSIONIDCount)并返回

获取 JSESSIONID list 转换为 list 去重、求大小,ip 和 Count 返回。

方法名字复制粘贴 CoreRule.criticalCookies 放到开发工具,括号补全,拿数据 processedData,关键页面信息

broadcastCriticalPagesList.value

CoreRule.criticalCookies(processedData,broadcastCriticalPagesList.value

创建方法,问号删除括号补全

defcriticalCookies(processedData:DStream[ProcessedData],value

:ArrarBuffer[String]:Unit={

放到最后


四、详细思路

拿到 url,关键页面是 url 的正则,先拿到 url 匹配。拿到 cookie,要统计 cookie 数量,对 cookie 进行去重求大小。

1、抽取出数据中的 IP,数据中的 url 和数据中的 Cookie

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

3使用url与规则进行匹配

若数据的url能够与规则的任意一个匹配成功,表示此 url 是关键页面,将 ip 和 Cookie 返回

若数据的 url 与规则的任意一个没有匹配成功,表示此 url 不是关键页面,将””和””返回

4、调用 groupByKeyAndWindow,得到的结果是 key(IP)和 value的 list(Cookie的list)

5、获取出 ip,和 value 的 list(Cookie的list),将 value 的 list 去重再求大小。

6、将 ip 和值大小返回

7、将终数据转换为 Map,便于后续提取、使用。

拿到开发工具

//1抽取出数据中的 IP,数据中的 url 和数据中的 Cookie

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

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

//若数据的url能够与规则的任意一个匹配成功,表示此 url 是关键页面,将 ip 和 Cookie 返回

//若数据的 url 与规则的任意一个没有匹配成功,表示此 url 不是关键页面,将””和””返回

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

//5获取出 ip,和 value 的 list(Cookie的list),将 value 的 list 去重再求大小。

//6将 ip 和值大小返回

//将终数据转换为 Map,便于后续提取、使用。

相关文章
|
7月前
|
数据采集 机器学习/深度学习 安全
Python爬虫之极验滑动验证码的识别
了解极验滑动验证码、特点、识别思路、初始化、模拟点击、识别缺口、模拟拖动。
408 0
|
4月前
|
数据采集 网络协议 索引
Python 爬虫技巧:百度页面重定向的自动跟踪与处理
Python 爬虫技巧:百度页面重定向的自动跟踪与处理
|
7月前
|
数据采集 Web App开发 文字识别
Python爬虫之点触验证码的识别
点触验证码识别思路,初始化,获取,识别。
183 0
Python爬虫之点触验证码的识别
|
7月前
|
数据采集 文字识别 开发者
Python爬虫之图形验证码的识别
python爬虫逆向图形验证码分析,处理和测试实战。
146 0
|
7月前
|
数据采集 前端开发 JavaScript
Java网络爬虫实践:解析微信公众号页面的技巧
Java网络爬虫实践:解析微信公众号页面的技巧
|
数据采集 人机交互 API
「Python」爬虫-7.验证码的识别
> 本文主要介绍如何处理一些网页中简单的验证码问题。~~(只提供简单的思路,随着技术的发展,一些验证码已经防范的非常好了,一般的解决方法可能过不了验证码这一关🤺~~
405 0
|
数据采集 JavaScript Python
python爬虫示例,获取主页面链接,次级页面链接通过主页面元素获取从而避免js生成变动的值,保存数据分批次避免数据丢失
python爬虫示例,获取主页面链接,次级页面链接通过主页面元素获取从而避免js生成变动的值,保存数据分批次避免数据丢失
111 0
|
数据采集 SQL 消息中间件
数据预处理-历史爬虫判断-实现代码及效果|学习笔记
快速学习数据预处理-历史爬虫判断-实现代码及效果
142 0
数据预处理-历史爬虫判断-实现代码及效果|学习笔记
|
数据采集 监控 前端开发
数据预处理-历史爬虫判断-需求与实现思路|学习笔记
快速学习数据预处理-历史爬虫判断-需求与实现思路
130 0
数据预处理-历史爬虫判断-需求与实现思路|学习笔记
|
数据采集 算法 大数据
爬虫识别-总结及效果| 学习笔记
快速学习爬虫识别-总结及效果
爬虫识别-总结及效果| 学习笔记
下一篇
无影云桌面