开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第五阶段:爬虫识别-爬虫识别总体流程】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/673/detail/11685
爬虫识别-爬虫识别总体流程
内容介绍:
一、 课程回顾
二、 模块逻辑分析
一、 课程回顾
之前把识别爬虫的8个依据,分别是什么意思了解完之后,要实现数据识别,如下是爬虫识别过程中的工作,如图,爬虫识别规则模块用例图(即识别爬虫的8个指标)
二、 模块逻辑分析
如下是数据预处理的具体操作:
完成之后开始做爬虫的识别,如下是爬虫识别的总体流程:
要做爬虫的识别,首先要有数据,数据在如下图中的第四步,已经推到 Kafka 中,接下来要识别爬虫,就需要先得到数据,得到数据后要在 Kafka 中把数据读出来,
整个爬虫识别流程可分为数据的读取以及封装、指标计算、爬虫识别、数据入库四个流程。如下是4个环节的详细步骤:
数据在 Kafka 里面,也就是第4步数据预处理后已经进入了 Kafka 中,要做爬虫识别首先要把数据读取出来,读到爬虫识别程序当中,使用的基础是 Sparkstreaming,它是一批一批的读取数据,接下来对数据进行封装,前面在数据推送到 Kafka 中时,将 process data 调用时进行了拼接,在将数据塞入 Kafka 之前,又将它拼接成了一个字符串,如果后续的指标计算、爬虫识别依然会用到一条数据数据拆分的各个数据,使用的时候去拆分很麻烦,是我们先将它进行拆封再封装成 processdate,在后面指标计算时直接调用process data,然后就能看出有多少个数据,因此,读取就是从 Kafka 读取,封装是把它拆封完后封装成 processdate,便于后续比较中会方便使用。读取分装完后就得到 processdata 的结果,然后可以通过点的方式来获取数据。接下来进入下一个阶段,即指标计算。指标计算即上述所介绍的8个指标,这8个指标读过来数据封装之后,从封装中的数据去计算单位时间内的 IP 访问总量、访问的时间等,计算完这几项,先把8个指标中的结果全部计算出来。计算出来之后,接下来进行爬虫的识别,爬虫识别中要做指标碰撞,也就是说,数据的指标已经计算出来,衡量是否是爬虫需要有一个衡量标准,8个指标有8个结果,每一个结果都设置了一个阈值,指标碰撞是数据计算出来的结果和数据库当中配置的结果,数据库当中的配置结果在项目中流程管理的编辑中,如下:
如图8个指标是在数据库中已经明确配置完成的,就是说企业在企业端配置了8个指标,8个指标明确表示超过此阈值就可能是爬虫,指标计算中的8个指标是根据数据计算出来的,企业针对这8个指标设置了阈值。将计算出来的指标和企业设定的指标阈值进行对比,根据对比出来的结果去进行最终打分,打分里面有分值,根据分值判断它是否是爬虫,做爬虫的判断,计算出来的分还有爬虫判断的分。
如果数据计算出来的分数大于这个值,那它就是爬虫,如果不大于这个值,它就不是爬虫,此阈值就是判断它是否是爬虫的分界线,对比完成之后就能判断它是否是爬虫,如下:
接下来准备数据入库,上一个阶段中已经判断完成它是否是爬虫,反爬虫项目还需要将非爬虫过滤,过滤之后就剩下了纯爬虫,纯爬虫数据中可能有重复数据,因此要做去重操作,过虑出非爬虫数据,去重之后剩下了单一的爬虫数据,然后将爬虫数据入库到 Redis 中。