爬虫识别-爬虫判断思路| 学习笔记

本文涉及的产品
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云数据库 Tair(兼容Redis),内存型 2GB
简介: 快速学习爬虫识别-爬虫判断思路

开发者学堂课程【大数据实战项目 - 反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第六阶段爬虫识别-爬虫判断思路】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/674/detail/11716


爬虫识别-爬虫判断思路

目录:

一、课程计划

二、目标

三、需求

四、设计

第五阶段做完,开始进行第六阶段。第五阶段和第六阶段都用来做爬虫识别,第五阶段实现了前半部分,八个指标的计算,第六部分判断是否是爬虫,做备份恢复操作。

 

一、课程计划

1、规则匹配和打分并进行阈值判断

第五阶段算完八个指标的结果,用八个指标的结果与企业配置好的规则阈值匹配,打分,打完分后有最终的分数,用此分数与企业的阈值判断。数据计算到最后有一个分数,拿计算好的分数与企业黑名单分数做对比求大小关系,能断定是否为爬虫。

2、剔除非黑名单数据

将不是爬虫的数据,非黑名单数据剔除,剔除非爬虫数据剩下的是爬虫数据。

3、黑名单数据去重

爬虫可能有重复数据,进行去重

4、黑名单 Redis 数据恢复

5、黑名单数据备份到 Redis

去重拿到黑名单数据后写到 Redis,总体流程中第六步,把结果写到

Redis

image.png

Redis 基于内存,当机或断电有可能造成数据丢失

6、黑名单数据实时存储hdfs,用于Redis数据恢复

数据写到 Redis 的同时将黑名单数据写到 hdfs,用于 Redis 数据恢复。丢了数据,恢复数据,回到第四个环节黑名单 Redis 数据恢复。

7、存储规则计算结果 RDD HDFS

第七阶段主要工作是离线计算,企业中领导想看的报表。

image.png

需要计算出指标,计算出指标需要有数据。数据在第七阶段离线分析准备数据。

规则匹配和打分并进行阈值判断

 

二、目标

目标:计算出每一个数据是否是爬虫

 

三、需求

已经通过 streaming 程序计算出5分钟内的各个指标,针对每一次请求进行评比打分,根据分数和阈值对比判断是否是爬虫。

 

四、设计

1、获取到封装好的 processedData 进行 map 操作,得到每一条访问数据

image.png

拿到八个结果,下一步在此批数据中拿到每一条数据。

image.png

截取数据中 ip,用 ip 截取八个结果对应的值。企业配置的八个阈值针对八个指标,每个指标的结果,1010112等数字。拿出数据在八个指标的数字,数字与数字对比可得到大小关系。

image.png

2、使用数据库流程策略、ip、和所有收集的 map 为指标碰撞准备数据

数据中抽取出 ip、八个结果的 map、规则库,能够拿到一条数据在8个结果集内对应的指标值。企业配置的值在广播变量 broadcastFlo

wList 里。以下数据

image.png

有流程规则、ip、所有数据后计算出结果为指标碰撞准备数据。

指标碰撞

image.png

企业里配置的8个阈值、一条数据在8个结果集内对应的指标值(用 ip 和八个结果求出)为指标碰撞准备数据。

3、指标碰撞分析将数据计算的值与企业配置的阈值进行对比,为打分算法准备数据

企业里配置的8个阈值与一条数据在8个结果集内对应的指标值进行对比,根据大小关系为打分算法准备数据。指标碰撞计算出与选定与否无关得分结果集、选定的结果集,为打分算法准备。

4、打分算法接收数据返回分值

5、根据分值与最终阈值进行对比,判断是否是爬虫

反爬虫规则:黑名单阈值>100

根据算出的值与100或自己设置的值对比,判断是否是爬虫

6、最后将所有打分结果封装到 AntiCalculateResult 中返回

AntiCalculateResult businessprocess AntiCalculateResult

case class AntiCalculateResult(processedData: ProcessedData

ip:string,

ipBlockCounts:Int,

ipAccessCounts: Int,

criticalPageAccessCounts: Int

userAgentCounts: Int

critivalPageMinInterval: Int

accessPageIntervalLessThanDefault:Int, differentTripQuerysCounts: Int

criticalCookies: Int

flowsScore:Array[FlowScoreResult])

AntiCalculateResult

是反爬虫项目爬虫识别的最终目标,将需要的数据都封装到此,爬虫识别计算完毕。

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
目录
打赏
0
0
0
0
315
分享
相关文章
Python爬虫之极验滑动验证码的识别
了解极验滑动验证码、特点、识别思路、初始化、模拟点击、识别缺口、模拟拖动。
547 0
Python爬虫之点触验证码的识别
点触验证码识别思路,初始化,获取,识别。
265 0
Python爬虫之点触验证码的识别
「Python」爬虫-7.验证码的识别
> 本文主要介绍如何处理一些网页中简单的验证码问题。~~(只提供简单的思路,随着技术的发展,一些验证码已经防范的非常好了,一般的解决方法可能过不了验证码这一关🤺~~
444 0
Python爬虫之图形验证码的识别
python爬虫逆向图形验证码分析,处理和测试实战。
202 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等