爬虫识别-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 适用场景是关键点,恰好适用于某个场景下。

目录
打赏
0
0
0
0
127
分享
相关文章
Python爬虫之极验滑动验证码的识别
了解极验滑动验证码、特点、识别思路、初始化、模拟点击、识别缺口、模拟拖动。
586 0
新手爬虫er必刷!如何使用代理IP全攻略!
在爬虫开发中,代理IP是规避IP封锁和请求频率限制的重要工具,通过分散请求压力并模拟不同地理位置,提高数据抓取稳定性和成功率。本文详细介绍了代理IP的基本概念、选择服务的关键因素、获取及使用方法,包括Python中的Requests库和Scrapy框架的具体应用,以及IP管理与轮换策略,帮助新手掌握代理IP的使用技巧。
爬虫抓取数据过程中代理IP频繁掉线:以Kookeey为例的解决方案
在数据抓取过程中,代理IP不可或缺,但其频繁掉线问题严重影响效率。本文以Kookeey为例,探讨解决之道:1)深入理解掉线原因,审慎选择稳定的服务商; 2)保持代理IP更新并合理配置使用参数; 3)在程序中集成错误处理与重试逻辑; 4)必要时升级至更优质的服务; 5)主动与服务商沟通寻求支持; 6)探索替代抓取策略,如调整抓取节奏或采用分布式架构。这些措施有助于显著提升抓取成功率及稳定性。
Python爬虫实战:利用代理IP爬取百度翻译
Python 爬虫实战:利用代理 IP 爬取百度翻译
323 2
Python爬虫实战:利用代理IP爬取某瓣电影排行榜并写入Excel(附上完整源码)
Python爬虫实战:利用代理IP爬取某瓣电影排行榜并写入Excel(附上完整源码)
259 0
Python爬虫实战:利用代理IP爬取某瓣电影排行榜并写入Excel(附上完整源码)
静态代理IP对反爬虫策略的应对,以及静态ip对爬虫的助力
静态代理IP在爬虫应用中用于隐藏真实IP,抵御反爬策略。选择可靠代理服务提供商,获取代理IP并配置到爬虫程序。为防止被封锁,可定期切换代理IP、使用多个代理、降低爬取频率及伪装HTTP头信息。这些策略能有效提升爬虫的匿名性和安全性。
Python爬虫之点触验证码的识别
点触验证码识别思路,初始化,获取,识别。
280 0
Python爬虫之点触验证码的识别
Python爬虫IP代理技巧,让你不再为IP封禁烦恼了! 
本文介绍了Python爬虫应对IP封禁的策略,包括使用代理IP隐藏真实IP、选择稳定且数量充足的代理IP服务商、建立代理IP池增加爬虫效率、设置合理抓取频率以及运用验证码识别技术。这些方法能提升爬虫的稳定性和效率,降低被封禁风险。
SOCKS5代理IP:为什么它是网络爬虫的首选?
代理IP在网络爬虫中扮演重要角色,尤其是SOCKS5代理因其灵活性(支持多种协议)、高度匿名性、高速稳定性和安全性而备受青睐。它能帮助爬虫绕过访问限制,隐秘高效地收集数据,同时提供身份验证以保障安全。穿云API作为代理协议,在爬虫领域也受到推崇。