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

本文涉及的产品
云数据库 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

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

相关文章
|
6月前
|
数据采集 NoSQL 关系型数据库
Python爬虫去重策略:增量爬取与历史数据比对
Python爬虫去重策略:增量爬取与历史数据比对
|
4月前
|
数据采集 Web App开发 JavaScript
Python爬虫解析动态网页:从渲染到数据提取
Python爬虫解析动态网页:从渲染到数据提取
|
6月前
|
数据采集 存储 缓存
Python爬虫与代理IP:高效抓取数据的实战指南
在数据驱动的时代,网络爬虫是获取信息的重要工具。本文详解如何用Python结合代理IP抓取数据:从基础概念(爬虫原理与代理作用)到环境搭建(核心库与代理选择),再到实战步骤(单线程、多线程及Scrapy框架应用)。同时探讨反爬策略、数据处理与存储,并强调伦理与法律边界。最后分享性能优化技巧,助您高效抓取公开数据,实现技术与伦理的平衡。
295 4
|
6月前
|
数据采集 搜索推荐 API
Python 原生爬虫教程:京东商品列表页面数据API
京东商品列表API是电商大数据分析的重要工具,支持开发者、商家和研究人员获取京东平台商品数据。通过关键词搜索、分类筛选、价格区间等条件,可返回多维度商品信息(如名称、价格、销量等),适用于市场调研与推荐系统开发。本文介绍其功能并提供Python请求示例。接口采用HTTP GET/POST方式,支持分页、排序等功能,满足多样化数据需求。
|
7月前
|
Web App开发 数据采集 前端开发
Python + Chrome 爬虫:如何抓取 AJAX 动态加载数据?
Python + Chrome 爬虫:如何抓取 AJAX 动态加载数据?
|
6月前
|
数据采集 API 数据格式
Python 原生爬虫教程:京东商品详情页面数据API
本文介绍京东商品详情API在电商领域的应用价值及功能。该API通过商品ID获取详细信息,如基本信息、价格、库存、描述和用户评价等,支持HTTP请求(GET/POST),返回JSON或XML格式数据。对于商家优化策略、开发者构建应用(如比价网站)以及消费者快速了解商品均有重要意义。研究此API有助于推动电商业务创新与发展。
|
6月前
|
数据采集 测试技术 C++
无headers爬虫 vs 带headers爬虫:Python性能对比
无headers爬虫 vs 带headers爬虫:Python性能对比
|
6月前
|
数据采集 存储 监控
Python 原生爬虫教程:网络爬虫的基本概念和认知
网络爬虫是一种自动抓取互联网信息的程序,广泛应用于搜索引擎、数据采集、新闻聚合和价格监控等领域。其工作流程包括 URL 调度、HTTP 请求、页面下载、解析、数据存储及新 URL 发现。Python 因其丰富的库(如 requests、BeautifulSoup、Scrapy)和简洁语法成为爬虫开发的首选语言。然而,在使用爬虫时需注意法律与道德问题,例如遵守 robots.txt 规则、控制请求频率以及合法使用数据,以确保爬虫技术健康有序发展。
902 31
|
11月前
|
数据采集 存储 JSON
Python网络爬虫:Scrapy框架的实战应用与技巧分享
【10月更文挑战第27天】本文介绍了Python网络爬虫Scrapy框架的实战应用与技巧。首先讲解了如何创建Scrapy项目、定义爬虫、处理JSON响应、设置User-Agent和代理,以及存储爬取的数据。通过具体示例,帮助读者掌握Scrapy的核心功能和使用方法,提升数据采集效率。
460 6