爬虫识别-关键页面最小访问间隔-下|学习笔记

简介: 快速学习爬虫识别-关键页面最小访问间隔-下

开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第五阶段爬虫识别-关键页面最小访问间隔-下】学习笔记,与课程紧密联系,让用户快速学习知识。

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


爬虫识别-关键页面最小访问间隔-下

 

目录:

//6遍历时间的 list,将此字符串类型国际时间转换成普通时间(时间戳)

//7将多个时间戳添加到一个 list

//8对此时间戳的 list 进行排序

//9遍历每两个时间戳,求取两个时间戳的时间差

//10将此时间差添加到一个时间差的 list

//11最时间差的 list 进行排序

//12获取排序后的第一个值就是最小时间差

//13将 IP,和最小时间差返回

if(timeList.size>1){


//6遍历时间的 list,将此字符串类型国际时间转换成普通时间(时间戳)

timeList 是时间的集合,用 for 循环遍历每个数据 time 来源于 tim

eList,拿到某个时间。

将此字符串类型国际时间转换成时间戳,用时间戳计算更方便。

2019-05-14T09:08:50+08:00 是数据类型的时间,前面和后面都是#,是独立的数据。

#2019-05-14T09:08:50+08:00#

拿到开发工具,原始数据之间一个T,+8北京的东八区,不是标准的时间类型,先转换为标准的年月日时分秒,再转换为时间戳。

拿到的 time 是2019-05-14T09:08:50+08:00格式,要想转换为2019-05-14 09:08:50要截取。从0截到+的位置,T用空格替换。

time 调用.substring 从0开始截取,截取到数据中加号的位置,T用空格替换.replace。接收 val timeString

for(time<-timeList){

//2019-05-14T09:08:50+08:00

//2019-05-14 09:08:50

val timeString=time.substring(0,time.indexOf(“+”)).replace(targe

t=“T”,replacement=””)

//将 String 类型的时间转换成时间戳

val simple=new SimpleDateFormat 格式年月日时分秒

val simple=new SimpleDateFormat(pattern=”yyyy-MM-dd HH:mm

:ss”)

用 SimpleDateFormat.parse 字符串类型的日期,调用.getTime 拿到时间戳。定义变量接收,时间戳是 long 类型

val longTime=Simple.parse(timeString).getTime

 

//7将多个时间戳添加到一个 list

遍历时是一个,循环时是多个。定义接收时间戳类型数据的 List,存储 long 类型。

val longTimeList=new util.ArrayList[Long]()

添加 long 类型数据.add(longTime)

将多个时间戳添加到一个 List,List 实例化。

 

//8对此时间戳的 list 进行排序

longTimeList 进行排序.toArray 转换为 Array,定义变量 val longTi

meListArray 接收。longTimeList 是 ArrayList,ArrayList 不能直接排序,先转换为 Array。

longTimeListArray 进行排序 util.Arrays.sort 里面是转换为 Array 的数据

val longTimeListArray=longTimeList.toArray

util.Arrays.sort( longTimeListArray)

 

//9遍历每两个时间戳,求取两个时间戳的时间差

时间戳不用 for 循环遍历,求时间差至少两个数据。直接写 for 循环里默认i,数据来源从1开始,Array 角标从0开始。从1开始到 longTimeListArray.length,假设有字符串 Array 有10个数据,大小为10,角标是从0到9,现在是1到9。

longTimeListArray 的角标,括号拿到i,i从1开始,实际数据是从0到9,0没有。直接-longTimeListArray i-1 ,i=1,1-1=0。用第二个值减第一个值就是时间差,定义时间差 timeDiff

for(i<-1 until(longTimeListArray.length)){

val timeDiff= longTimeListArray(i)-longTimeListArray(i-1)]

-报错,查看 longTimeListArray(i-1)] 数据类型

val value:AnyRef=longTimeListArray(i-1)

val timeDiff=longTimeListArray(i)-value

转换为可以加减乘除,先转换为 toString 再转换为 toLong。timeDiff

为第二个数减第一个数的时间差。

val timeDiff=longTimeListArray(i).toString.toLong-longTimeListArra

y(i-1).toString.toLong

for(i<-2 until(longTimeListArray.length)){

i<-1变为i<-2,角标为2-角标为1,第三个数和第二个数时间差,一直到最后一个。

 

//10将此时间差添加到一个时间差的 list

定义时间差的 List

//实例一个存储时间差的 List

val timeDiffList=new util.ArrayList[Long]()

timeDiffList.add 时间差,有第一次计算、第二次计算结果,时间差产生。有时间差拿到时间差的集合。

 

//11最时间差的 list 进行排序

timeDiffList 转换为.toArray,定义方法接收,只有 Array 有排序的用法,定义 timeDiffListArray。

调用 util.Arrays.sort( timeDiffListArray) 对时间差的集合进行排序

val timeDiffListArray=timeDiffList.toArray()

util.Arrays.sort(timeDiffListArray)

 

//12获取排序后的第一个值就是最小时间差

timeDiffListArray(0)为第一个值最小时间差 val

timeDiffListArray(0)数据类型为

val value:AnyRef=timeDiffListArray(

0)

 

//13将 IP,和最小时间差返回

timeDiffListArray(0) 转换为 Int

(ip,timeDiffListArray(0).toString.toInt)

}else{

(“”,0)

} 

if(timeList.size>1){ 当 size 大于1时,有两个时走代码可以计算出最小时间差,两个数据1个时间差,不用比。

大于2个可算出多个,小于2个返回“”和0。

目录
打赏
0
0
0
0
127
分享
相关文章
Python爬虫之极验滑动验证码的识别
了解极验滑动验证码、特点、识别思路、初始化、模拟点击、识别缺口、模拟拖动。
579 0
Python 原生爬虫教程:京东商品列表页面数据API
京东商品列表API是电商大数据分析的重要工具,支持开发者、商家和研究人员获取京东平台商品数据。通过关键词搜索、分类筛选、价格区间等条件,可返回多维度商品信息(如名称、价格、销量等),适用于市场调研与推荐系统开发。本文介绍其功能并提供Python请求示例。接口采用HTTP GET/POST方式,支持分页、排序等功能,满足多样化数据需求。
如何避免Python爬虫重复抓取相同页面?
如何避免Python爬虫重复抓取相同页面?
Python 原生爬虫教程:京东商品详情页面数据API
本文介绍京东商品详情API在电商领域的应用价值及功能。该API通过商品ID获取详细信息,如基本信息、价格、库存、描述和用户评价等,支持HTTP请求(GET/POST),返回JSON或XML格式数据。对于商家优化策略、开发者构建应用(如比价网站)以及消费者快速了解商品均有重要意义。研究此API有助于推动电商业务创新与发展。
Python 爬虫技巧:百度页面重定向的自动跟踪与处理
Python 爬虫技巧:百度页面重定向的自动跟踪与处理
Python爬虫之点触验证码的识别
点触验证码识别思路,初始化,获取,识别。
279 0
Python爬虫之点触验证码的识别
「Python」爬虫-7.验证码的识别
> 本文主要介绍如何处理一些网页中简单的验证码问题。~~(只提供简单的思路,随着技术的发展,一些验证码已经防范的非常好了,一般的解决方法可能过不了验证码这一关🤺~~
453 0
Python爬虫之图形验证码的识别
python爬虫逆向图形验证码分析,处理和测试实战。
211 0
AI助理

你好,我是AI助理

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