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

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

开发者学堂课程【大数据实战项目 - 反爬虫系统(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。必须选定的做判断。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
数据采集 开发者
如何编写有效的爬虫代码来避免网站的反爬虫机制?
如何编写有效的爬虫代码来避免网站的反爬虫机制?
427 1
|
数据采集 Python
【Python自动化】多线程BFS站点结构爬虫代码,支持中断恢复,带注释
【Python自动化】多线程BFS站点结构爬虫代码,支持中断恢复,带注释
166 0
|
数据采集 机器学习/深度学习 安全
Python爬虫之极验滑动验证码的识别
了解极验滑动验证码、特点、识别思路、初始化、模拟点击、识别缺口、模拟拖动。
1204 0
|
2月前
|
数据采集 人工智能 JSON
Prompt 工程实战:如何让 AI 生成高质量的 aiohttp 异步爬虫代码
Prompt 工程实战:如何让 AI 生成高质量的 aiohttp 异步爬虫代码
|
5月前
|
数据采集 存储 数据库
Python爬虫开发:Cookie池与定期清除的代码实现
Python爬虫开发:Cookie池与定期清除的代码实现
|
5月前
|
数据采集 监控 网络协议
基于aiohttp的高并发爬虫实战:从原理到代码的完整指南
在数据驱动时代,传统同步爬虫效率低下,而基于Python的aiohttp库可构建高并发异步爬虫。本文通过实战案例解析aiohttp的核心组件与优化策略,包括信号量控制、连接池复用、异常处理等,并探讨代理集成、分布式架构及反爬应对方案,助你打造高性能、稳定可靠的网络爬虫系统。
378 0
|
数据采集 存储 JSON
推荐3款自动爬虫神器,再也不用手撸代码了
推荐3款自动爬虫神器,再也不用手撸代码了
1262 4
|
数据采集 编解码
jupyter-notebook编写爬虫代码的时候cookie值自动转码的问题
jupyter-notebook编写爬虫代码的时候cookie值自动转码的问题
174 0
|
数据采集 人机交互 API
「Python」爬虫-7.验证码的识别
> 本文主要介绍如何处理一些网页中简单的验证码问题。~~(只提供简单的思路,随着技术的发展,一些验证码已经防范的非常好了,一般的解决方法可能过不了验证码这一关🤺~~
604 0
|
数据采集 存储 JavaScript
(2024)豆瓣电影TOP250爬虫详细讲解和代码
这是一个关于如何用Python爬取2024年豆瓣电影Top250的详细教程。教程涵盖了生成分页URL列表和解析页面以获取电影信息的函数。`getAllPageUrl()` 生成前10页的链接,而`getMoiveListByUrl()` 使用PyQuery解析HTML,提取电影标题、封面、评价数和评分。代码示例展示了测试这些函数的方法,输出包括电影详情的字典列表。
1288 3