爬虫识别-关键页面访问量-需求及实现思路|学习笔记

简介: 快速学习爬虫识别-关键页面访问量-需求及实现思路

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

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


爬虫识别-关键页面访问量-需求及实现思路

 

目录:

一、目标

二、需求

三、设计

四、实践

五、详细步骤

 

一、目标

//3 按 IP 地址聚合-某个 IP,5分钟内的关键页面访问总量

比第二个多一个条件关键页面,计算关键页面。

目标:计算某个 IP,5分钟内的关键页面访问总量

 

二、需求

什么是关键页面

在主网站中,除了可以查询、预定车票外,有很多查询请求,例如:服务大厅、实名认证。

官方中国南方航空为例

image.png

首页是需要的查询操作,除此之外有南航假期、明珠俱乐部、优惠信息、出行帮助等界面。点击进去也有数据,对爬虫数据没有意义不大,首页查询数据是有用的为关键页面,除此之外界面无关紧要。

image.png

image.png

此类请求的后缀不是过滤 html、css、is 等文件,数据在预处理时被处理,和查询请求一样的 ao 文件,此类请求对于业务没有用,但是不能将它们过滤,需要对关键页面(查询、预定)进行设置,将只对爬电识别有用的关键页面设置到企业的数据库中。后期用数据与之匹配。

通过筛选关键页面的统计量,能很容易的识别出爬虫信息,前面已经读取关键页面的信息、流程数据,5-2已经完成,直接将数据与规则进行匹配。

image.png

通过筛选关键页面的统计量,能很容易的识别出爬虫信息,爬虫非常关心关键页面,访问关键页面次数越多,是爬虫可能性越大。因为普通用户不会在短时间内大量的访问关键页面。爬虫速度快会频繁访问关键页面,访问的关键页面次数越多,是爬虫的可能性越大。

企业系统内设置指标的阈值。如果根据数据计算出的结果(关键页面访问量)超过设置的阈值,很有可能是爬虫。

5分钟内的关键页面访问总量<100

正常用户访问关键页面10、20次,超过100很可能是爬虫,爬虫100很容易做到

 

三、设计

拿到数据与数据库里的关键页面进行匹配,数据中的 url 与关键页面匹配成功就是关键页面,是关键页面的前提下统计是否做过 reduce

ByKey 在第二步基础上加一个条件。

先判断关键页面,遍历数据,如果是关键页面返回(remoteaddr,1),不是关键页面返回(remoteaddr,0)匹配失败,做 reduceByKey 时0+0=0,计算出关键页面的访问次数

1、拿到 kafka 消息和数据库关键页面广播变量的 value

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

3、匹配成功记录(remoteaddr,1)

4、匹配失败记录(remoteaddr,0)

5、统计最终结果

 

四、实践

代码写到独立的 updata,复制粘贴关键页面总数,使用前面数据,关键页面的规则广播变量已经做好,读取的关键页面放到广播变量中,复制粘贴,调用.value

CoreRule.criticalPagesCounts(processedData,broadcastCriticalPagesList.value

创建,问号删除括号补全

def criticalPagesCounts(processedData:[ProcessedData],value:Ar

rarBuffer[String]:Unit={

放到最后

拿到 kafka 消息与数据库关键页面广播变量的 value 匹配,匹配目的确定是否为关键页面,是关键页面返回(remoteaddr,1),不是返回(remoteaddr,0),调用 reduceByKeyAndWindow 计算


五、详细步骤

抽取出数据中的 IP 和数据中的 url,url 判断是否为关键页面。用 url 匹配数据库中的规则,匹配上是关键页面,匹配不上不是关键页面。

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

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

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

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

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

4、调用 reduceByKeyAndWindow 计算最终每个 ip 段的总量

5、将最终数据转换为 Map.便于后续提取、使用。

url 和关键页面表达式 value 改为 criticalPagesList

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