爬虫识别-IP 段统计-总结|学习笔记

简介: 快速学习爬虫识别-IP 段统计-总结。

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

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


爬虫识别-IP 段统计-总结

 

目录:

一、抽取出数据中的 IP

二、截取出 ip 的前两位

三、将前两位作为 key,1作为 value 输出

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

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

 

一、抽取出数据中的 IP

上节课5分钟范围内 IP 段的访问总量计算完毕。

拿到 processData 做遍历拿到某一条数据,数据为 processData,直接调用.remote 为 IP

val ip= message.remoteAddr

 

二、截取出 ip 的前两位

拿到第一个点位置,然后拿到第二个点位置,从0开始截取到第二个点位置为 IP 段

//获得到第一个.的位置

val one =ip.indexof(".")

//获得到第二个.的位置

val two =ip.indexof(str=".",one+1)

//ip 段的截取

val ipblock= ip.substring(0,two)

 

三、将前两位作为key,1作为value输出

(ipblock,1)

 

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

.reduceByKeyAndWinow((a:Int)=>a+b,Seconds(6,Seconds(2))

默认窗口需求5分钟但实际窗口宽度6秒钟,窗口滑动的步长2秒钟,频繁计算大时间范围内需求调用 reduceByKeyAndWinow,a、b 数据类型加算法 a+b

 

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

声明 map 类型变量进行接收

var ipBlockCountsMap :collection.Map[string,Int] =null

ipBlockCounts.foreachRDD(rdd=>{

ipBlockCountsMap=rdd.collectAsMap()

})

第一个指标5分钟内 IP 段访问总量总结完毕。

ipblock 怎样截取,是易错点

val ipblock=ip.substring(0,two)

reduceByKeyAndWinow 适用场景

reduceByKeyAndWinow((a:Int)=>a+b,Seconds(6,Seconds(2))

如果要计算一个小时数据,一分钟计算一次,每一分钟的计算都要计算新的一小时,从此时间节点向前推一个小时到下个时间节点再推一个小时,以一个小时为中心有59分钟重复数据,2秒钟同步一次,同步6秒钟的窗口时间,4秒钟数据重复,不是错误。需求要求每隔很短时间内做一次计算,必然有大量重复数据。reduceByKeyAndWin

ow 适用场景是关键点,恰好适用于某个场景下。

相关文章
|
数据采集 机器学习/深度学习 安全
Python爬虫之极验滑动验证码的识别
了解极验滑动验证码、特点、识别思路、初始化、模拟点击、识别缺口、模拟拖动。
1205 0
|
3月前
|
数据采集 运维 监控
构建企业级Selenium爬虫:基于隧道代理的IP管理架构
构建企业级Selenium爬虫:基于隧道代理的IP管理架构
|
3月前
|
数据采集 消息中间件 NoSQL
分布式爬虫的全局请求间隔协调与IP轮换策略
分布式爬虫的全局请求间隔协调与IP轮换策略
|
7月前
|
数据采集
Haskell编程中,利用HTTP爬虫实现IP抓取
以上就是利用Haskell编写IP抓取爬虫的详细步骤。希望这篇文章的演示对于理解在Haskell这种函数式编程语言中如何实现网络爬虫有所帮助,而其中的网络访问、标签解析和列表处理等技术在许多其他的问题中都有广泛的应用。
180 26
|
5月前
|
数据采集 机器学习/深度学习 边缘计算
Python爬虫动态IP代理报错全解析:从问题定位到实战优化
本文详解爬虫代理设置常见报错场景及解决方案,涵盖IP失效、403封禁、性能瓶颈等问题,提供动态IP代理的12种核心处理方案及完整代码实现,助力提升爬虫系统稳定性。
393 0
|
6月前
|
数据采集 机器学习/深度学习 Web App开发
Python爬虫如何应对贝壳网的IP封禁与人机验证?
Python爬虫如何应对贝壳网的IP封禁与人机验证?
|
7月前
|
数据采集 运维 监控
Serverless爬虫架构揭秘:动态IP、冷启动与成本优化
随着互联网数据采集需求的增长,传统爬虫架构因固定IP易封禁、资源浪费及扩展性差等问题逐渐显现。本文提出基于Serverless与代理IP技术的新一代爬虫方案,通过动态轮换IP、弹性调度任务等特性,显著提升启动效率、降低成本并增强并发能力。架构图与代码示例详细展示了其工作原理,性能对比数据显示采集成功率从71%提升至92%。行业案例表明,该方案在电商情报与价格对比平台中效果显著,未来有望成为主流趋势。
285 0
Serverless爬虫架构揭秘:动态IP、冷启动与成本优化
|
6月前
|
数据采集 Python
解决requests爬虫IP连接初始问题的方案。
通过上述技艺,爬虫程序的调试和优化将变得十分高效,最妙的是,这些技术诀窍不仅可以帮你避开网络世界里的雷区,更能让你在数据抓取的战场上游刃有余。
112 0
|
7月前
|
数据采集 人工智能 边缘计算
爬虫IP代理效率优化:策略解析与实战案例
本文深入探讨了分布式爬虫中代理池效率优化的关键问题。首先分析了代理效率瓶颈的根源,包括不同类型代理的特点、连接耗时及IP失效问题。接着提出了六大核心优化策略:智能IP轮换矩阵、连接复用优化、动态指纹伪装、智能重试机制等,并结合电商价格监控、社交媒体舆情分析和金融数据抓取三个实战案例,展示了优化效果。同时建立了三维效率评估体系,从质量、成本和稳定性全面衡量性能。最后展望了AI驱动调度、边缘计算融合等未来演进方向,帮助爬虫系统实现从“暴力采集”到“智能获取”的进化,大幅提升效率并降低成本。
299 0
|
数据采集 中间件 定位技术
新手爬虫er必刷!如何使用代理IP全攻略!
在爬虫开发中,代理IP是规避IP封锁和请求频率限制的重要工具,通过分散请求压力并模拟不同地理位置,提高数据抓取稳定性和成功率。本文详细介绍了代理IP的基本概念、选择服务的关键因素、获取及使用方法,包括Python中的Requests库和Scrapy框架的具体应用,以及IP管理与轮换策略,帮助新手掌握代理IP的使用技巧。