开发者学堂课程【大数据实战项目 - 反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第六阶段:爬虫识别-爬虫写入 Redis-效果及总结】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/674/detail/11729
爬虫识别-爬虫写入 Redis-效果及总结
内容介绍:
一、展示
二、总结
一、展示
已经将识别出的黑名单数据写入到 Redis 中。此时,查看实际效果。首先需要将数据域代码运行。运行之后,找到爬虫右键进行执行。接下来将爬虫识别运行,识别时,也会将数据写入到 Redis 中。看到分数之后,证明爬虫已经运行成功。
没有报错,也将数据写入到 Redis 中。刷新之后,结果如下:
以 BLACK 为前置的数据就是拼接出的黑名单,数据IP就是黑名单。数据出现,说明识别出的爬虫已经写入到Redis中。之后的时间、命名规则、名称等也存在于其中。此时证明爬虫识别写入到Redis中已经成功。将代码停止运行回到数据处理流程中:
在整个流程中,爬虫识别、读取数据和规则以及判断已经进行,判断完成之后,第六步,将数据写入到Redis也完成。第七步,是前端工程师需要做的事情。只需要将爬虫识别,识别出之后将其写入到Redis中,按照规则写入,前端工程师按照规则读取出Redis,直接到前端进行屏蔽即可。在LUA脚本中也写了读取Redis数据的脚本,读取完成之后做输出。这个工作由前端工程师完成。以上就是爬虫识别,写到Redis的过程。
二、总结
将数据写到Redis中,第一步就是遍历数据中的Rdd,将其进行序列化。代码如下:
blackDatas . foreachRDD(rdd=>{
val plackDatas: Array[ (String, Array[ FlowScoreResult])] = rdd.collect( )
…
…
}
)
第二步,遍历后的每一个数据获取出数据的IP和FLOW score。代码如下:
for(blackData< -blackDatas){
//
获取数据中的IP
val ip=blackData._ 1
//
获取数据中的fLowsScore
val flowsScores: Array[FlowScoreResult]=blackData. 2
…
…
}
第三步,准备写入Redis的Key。代码如下:
Val
key=PropertiesUtil. getStringByKey(
"cluster .key. anti_ black_ list" ,
"jedisConfig. Properties")
+"I"+
Ip
+"I"+
flowsScore. flowId
+"I"+
System. curr entTimeMillis() . toString
…
…
}
第四步,准备写入Redis的Time,代码如下:
va1 time
=PropertiesUtil. getStr ingByKey(
" cluster . exptimeanti_ black. _list"
,"jedisConfig. properties"
). toInt
第五步,准备写入Redis的value,代码如下:
val value=flowsScore. flowScore+"
”+flowsScore. hitRules+" "+flowsScore. hitTime
最后写入Redis数据,代码如下:
jedis. setex(key, time,value)
以上是将识别到的爬虫数据写入Redis,被剔除爬虫准备数据的过程。