爬虫识别-准备离线计算数据| 学习笔记

本文涉及的产品
云数据库 Tair(兼容Redis),内存型 2GB
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
简介: 快速学习爬虫识别-准备离线计算数据

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

课程地址:https://developer.aliyun.com/learning/course/674/detail/11734


爬虫识别-准备离线计算数据

内容介绍:

一、黑名单 Redis 数据恢复

二、存储规则计算结果 RDD HDFS

 

一、黑名单 Redis 数据恢复

黑名单数据从 HDFS 恢复到 Redis 这个过程,这个项目里面实际上是有数据的备份和恢复的过程。先做备份,如果有丢失的就做恢复。

 

二、存储规则计算结果 RDD HDFS

主要是做离线分析的

1、实际上数据采集和数据预处理、实时计算都做好了,但是第七步、第八步、第九步都没有做,第七部是剔除,第八步是做数据的读取写到HDFS 里面,主要数据来源于第四步数据预处理写到Kafka 集群,5-1 进行爬虫识别,这里面要将5-1里面读取过来的原始数据直接原封不动,直接写在HDFS 里面,用来做离线报表的支撑。写到HDFS后再去做离线计算,也就是第九步,计算出来的结构写到Mysql 里面,离线计算就做完了。

2、存储规则计算结果RDD HDFS+ 实时计算性能监控

将经过预处理的数据写入HDFS,为离线分析准备数据。

3、需求

将计算结果Rdd 存储到HDFS,便于后期做离线统计报表使用,此功能需要打包到线上运行,因为本地的local模式会在本地hiveContent环境,而本地并没有。

4、KafkaValue 要做重点强调,回到前面八个指标用到的数据是processedData,这个processedData 是从kafkadatas 里面把数据读过来,然后获取valuevalue就是我数据真正的值,然后将value转化成了processedData,这个 里面就是processedData 的类型,而现在做离线分析不要processedData类型,要的是原始数据,要#cs#拼接的那个,不要你封装好的那个,所以离线分析要在这个数据上拿,不经过任何处理,读过来直接给我,所以计算结果数据RDDHDFS 就要原始数据,遍历出每一条数据。

5、Data 然后 SimpleDateFormat 然后按照年月日时的格式来把当前系统时间按按照年月日时的格式来进行格式化,格式化好了以后,data拿到了以后.replacce斜杠、空转换成int,也就是说把年月日时这个格式字符串把斜线换成了一个空,转换成了一个int类型。然后这就是一个大的int,这个 int 用来干嘛,这里有个pathpath里面去读取了配置文件读取写进去的路径,路径拿到以后,后面加了一个ITcast又加了年月日时,他就没有斜线了,然后这是一个路径,现在路径有了,接下来就是sc.textFile 要写数据了,数据写在前面拼好这个路径,加一个part-00000,然后将数据与他们的关系对应起来,然后numPartitions一下,做一个分区,然后.saveAsTextFile保存这个路径。

6、这个就是我们将数据写入到HDFS的过程。

image.png

也就是说从总体流程来看,5-1读取过来的数据什么都不操作,直接把它写到HDFS 里面,这就是第八步,写到这里就已经为离线分析准备好了数据。

7、把数据预处理跑起来,爬虫也跑起来,然后把数据计算也就是爬虫识别跑起来,没有报错就回到路径里面来,在刷新一下这个界面,(1)就会出现为离线分析准备的数据都放在ITcast这个里面

image.png

2)然后 ITcast 里面有一个年月日时的目录

3)在点进去就有一个 part-00000 part-0000 里面就是数据。

它是一个 processedData ,用逗号拼接的。我们调用的是用#cs#分隔的。

4)点击 part-00000

(5)点击进入之后,点击 Download

6)显示出下图界面

image.png

7)然后下载,点击确定

8)下载完成后,打开

9)点击进入part-00000,用notepad++打开

 image.png

10)前面是null,后面#CS#拼接post等好多数据

image.png

这个就是前面预处理的结果打到kafka, 5-1kafka读取过来后直接写到HDFS ,然后我们下载到本地看了一下就是这些前面预处理后的结果。只不过爬虫比较单一,数据也都是假的,看到的数据特别规整,但是实际生产的数据可能不是特别规整的,什么样的都有。

8、代码是实时运行的,可以看数据量增加了没有、

1)可以看到数据现在是55.27KB

2)刷新之后 134.65KB

image.png

这个就是数据写到 HDFS 的过程。后续进行离线计算的数据就有了。

规则匹配和打分并进行阈值判断

剔除非黑名单数据

黑名单数据去重

黑名单 Redis 数据恢复

黑名单数据备份到 Redis

黑名单数据实时存储 hdfs,用于 Redis 数据恢复

存储规则计算结果 RDD HDFS

以上都做了,第六阶段结束。

相关文章
|
8天前
|
数据采集 API 数据处理
Objective-C 音频爬虫:实时接收数据的 didReceiveData: 方法
Objective-C 音频爬虫:实时接收数据的 didReceiveData: 方法
|
24天前
|
消息中间件 数据采集 数据库
小说爬虫-03 爬取章节的详细内容并保存 将章节URL推送至RabbitMQ Scrapy消费MQ 对数据进行爬取后写入SQLite
小说爬虫-03 爬取章节的详细内容并保存 将章节URL推送至RabbitMQ Scrapy消费MQ 对数据进行爬取后写入SQLite
16 1
|
1月前
|
数据采集 数据挖掘 数据处理
Python中实现简单爬虫并处理数据
【9月更文挑战第31天】本文将引导读者理解如何通过Python创建一个简单的网络爬虫,并展示如何处理爬取的数据。我们将讨论爬虫的基本原理、使用requests和BeautifulSoup库进行网页抓取的方法,以及如何使用pandas对数据进行清洗和分析。文章旨在为初学者提供一个易于理解的实践指南,帮助他们快速掌握网络数据抓取的基本技能。
55 3
|
2月前
|
数据采集 JSON 数据格式
Python:南京地铁每日客流数据的爬虫实现
Python:南京地铁每日客流数据的爬虫实现
55 1
|
25天前
|
数据采集 Web App开发 JSON
爬虫实战小案例—获取喜马拉雅账号的关注数据和粉丝数据生成电子表格并实现批量关注或者取关然后生成表格文件
爬虫实战小案例—获取喜马拉雅账号的关注数据和粉丝数据生成电子表格并实现批量关注或者取关然后生成表格文件
43 0
|
25天前
|
数据采集
爬虫案例—抓取找歌词网站的按歌词找歌名数据
爬虫案例—抓取找歌词网站的按歌词找歌名数据
41 0
|
2月前
|
数据采集 Python
爬虫练手:某网图书畅销榜排名数据
爬虫练手:某网图书畅销榜排名数据
28 0
|
3月前
|
机器学习/深度学习 数据采集 数据可视化
基于爬虫和机器学习的招聘数据分析与可视化系统,python django框架,前端bootstrap,机器学习有八种带有可视化大屏和后台
本文介绍了一个基于Python Django框架和Bootstrap前端技术,集成了机器学习算法和数据可视化的招聘数据分析与可视化系统,该系统通过爬虫技术获取职位信息,并使用多种机器学习模型进行薪资预测、职位匹配和趋势分析,提供了一个直观的可视化大屏和后台管理系统,以优化招聘策略并提升决策质量。
156 4
|
3月前
|
数据采集 存储 搜索推荐
打造个性化网页爬虫:从零开始的Python教程
【8月更文挑战第31天】在数字信息的海洋中,网页爬虫是一艘能够自动搜集网络数据的神奇船只。本文将引导你启航,用Python语言建造属于你自己的网页爬虫。我们将一起探索如何从无到有,一步步构建一个能够抓取、解析并存储网页数据的基础爬虫。文章不仅分享代码,更带你理解背后的逻辑,让你能在遇到问题时自行找到解决方案。无论你是编程新手还是有一定基础的开发者,这篇文章都会为你打开一扇通往数据世界的新窗。
|
4月前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
【7月更文挑战第31天】在网络数据的海洋中,使用Python的`requests`库构建网络爬虫就像探索未知的航船。HTTP协议指导爬虫与服务器交流,收集信息。HTTP请求包括请求行、头和体,响应则含状态行、头和体。`requests`简化了发送各种HTTP请求的过程。
80 4