爬虫识别-指标碰撞-代码实现总结| 学习笔记

简介: 快速学习爬虫识别-指标碰撞-代码实现总结

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

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


爬虫识别-指标碰撞-代码实现总结

内容介绍:

一、回顾

二、总结

 

一、回顾

之前将指标碰撞结果与选定与否无关、必须选定的计算完成,拥有流程中打分所需要的两个结果,碰撞做完。

 

二、总结

碰撞分为准备数据、指标碰撞两部分。

01准备数据

1、提取一个 ip 在八个结果集内对应的数据,

val ipBlockCounts=ipBlockCountsMap.getOrElse(ipBlock,0)

val ipCounts=ipCountsMap.getOrElse(ip,0)

val criticalPagesCounts=criticalagesCountsMap.getOrElse(ip,0)

val userAgentCounts=userAgentCountsMap.getOrElse(ip,0)

val differentJourneysCounts=differentJourneysCountsMap.getOrEls

e(ip,0)

val ipCookCount=ipCookCountMap.getOrElse(ip,0)

val minTimeDiff=minTimeDiffMap.getorElse(ip,0)

val lessDefaultTimes=lessDefaultTimesMap.getorElse(ip,0)

2、将取出的数据封装为 Map,将 Map 与流程数据传入碰撞方法

val dataParams=Map(

"ipBlock"->ipBlockcounts,

"ip"->ipCounts,

"criticalPages"->criticalPagesCounts,

"userAgent"->userAgentCounts,

"criticalcookies"->ipCookcount,

"flightQuery"->differentJourneyscounts,

"criticalPagesAccTime"->minTimeDiff,

"criticalPagesLessThanDefault"->lessDefaultTimes

02指标碰撞

1、根据算法需求实例两个 ArrayBuffer

//一个选定与否无关的数据分数,若数据的值大于设置的阈值返回数据的分数,反之返回0

//结果集的大小一直是8

val allRuleScoreList=new ArrayBuffer[Double]()

//一个必须是选定状态的并且数据的结果大于配置的阈值返回分数,反之不做返回

//结果大小不定

val selectRuleScoreList=new ArrayBuffer[Double]() 

2、遍历流程数据,获取流程内的规则

for(flow<-flowList){

//获取流程内的规则(8个)

val rules=flow.rules

}

3、获取规则内的阈值

val databaseValue=if(rule.ruleName.equals("criticalPagesLessTha

nDefault") rule.ruleValue1 else rule.ruleValue0

4、获取数据计算出的结果

val dataValue=dataParams.getOrElse(rule.ruleName)

5、数据对比

//数据计算的结果大于阈值,根据需求将分数写入相应的ArrayBuffer

//数据计算的结果小于阈值,根据需求填入ArrayBuffer(是否需要填写)

if(dataValue>databaseValue){

allRuleScoreList.append(rule.ruleScore)

//判断规则是否选中

if(rule.rulestatus==0){

selectRuleScoreList.append(ruleruleScore

}

}else{//反之数据计算的结果小于阈值

allRuleScoreList.append(0)

}

数据值大于数据库值时添加值,反之添加0。必须选定的做判断。

相关实践学习
简单用户画像分析
本场景主要介绍基于海量日志数据进行简单用户画像分析为背景,如何通过使用DataWorks完成数据采集 、加工数据、配置数据质量监控和数据可视化展现等任务。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
相关文章
|
1月前
|
数据采集 开发者
如何编写有效的爬虫代码来避免网站的反爬虫机制?
如何编写有效的爬虫代码来避免网站的反爬虫机制?
19 1
|
1月前
|
数据采集 机器学习/深度学习 安全
Python爬虫之极验滑动验证码的识别
了解极验滑动验证码、特点、识别思路、初始化、模拟点击、识别缺口、模拟拖动。
59 0
|
3月前
|
数据采集 Python
【Python自动化】多线程BFS站点结构爬虫代码,支持中断恢复,带注释
【Python自动化】多线程BFS站点结构爬虫代码,支持中断恢复,带注释
28 0
|
1月前
|
数据采集 Web App开发 文字识别
Python爬虫之点触验证码的识别
点触验证码识别思路,初始化,获取,识别。
56 0
Python爬虫之点触验证码的识别
|
1月前
|
数据采集 文字识别 开发者
Python爬虫之图形验证码的识别
python爬虫逆向图形验证码分析,处理和测试实战。
46 0
|
1月前
|
数据采集 存储 JSON
解析Perl爬虫代码:使用WWW::Mechanize::PhantomJS库爬取stackoverflow.com的详细步骤
在这篇文章中,我们将探讨如何使用Perl语言和WWW::Mechanize::PhantomJS库来爬取网站数据。我们的目标是爬取stackoverflow.com的内容,同时使用爬虫代理来和多线程技术以提高爬取效率,并将数据存储到本地。
|
数据采集 人机交互 API
「Python」爬虫-7.验证码的识别
> 本文主要介绍如何处理一些网页中简单的验证码问题。~~(只提供简单的思路,随着技术的发展,一些验证码已经防范的非常好了,一般的解决方法可能过不了验证码这一关🤺~~
352 0
|
10月前
|
数据采集 存储 JSON
猜谜游戏、彩云词典爬虫、SOCKS5代理的 Go(Golang) 小实践,附带全代码解释
猜谜游戏在编程语言实践都已经和 HelloWord 程序成为必不可少的新手实践环节,毕竟,它能够让我们基本熟悉 for 循环、变量定义、打印、if else 语句等等的使用,当我们基本熟悉该语言基础之后,就要学会其优势方面的程序实践,比如 Golang 所具备的爬虫及其并发优势。我们将采用彩云词典的英文单词翻译成中文的在线词典爬虫程序,及其改进版本,在并发上,我们将采用 SOCKS5 代理服务器的方式体验 Golang 语言的高并发易用性
61 0
猜谜游戏、彩云词典爬虫、SOCKS5代理的 Go(Golang) 小实践,附带全代码解释
|
数据采集 机器学习/深度学习 传感器
爬虫搜索算法附matlab代码
爬虫搜索算法附matlab代码
|
数据采集 SQL 消息中间件
数据预处理-历史爬虫判断-实现代码及效果|学习笔记
快速学习数据预处理-历史爬虫判断-实现代码及效果
109 0
数据预处理-历史爬虫判断-实现代码及效果|学习笔记