爬虫识别-封装数据成 processedData|学习笔记

简介: 快速学习爬虫识别-封装数据成 processedData。

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

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


爬虫识别-封装数据成 processedData

 

内容介绍:

一、目的

二、需求与设计

三、代码编写

 

一、目的

本章节要对数据进行封装,现在的数据都是用#CS#分开的数据,如果以后需要调用的时候再来一个一个进行拆分,就显得麻烦,所以再次统一进行拆分,然后封装,在调用对的点,去拿取数据,更为方便。 

即经过预处理以后的数据存储到 kafka 里面,是要进行分割的,后续计算的时候会用到各个数据,临时切分不太方便,为了方便后续使用,需要先在这里面先把它进行拆分,然后封装成 process date。

 

二、需求与设计

需求

从 kafka 中读取数据,用#CS#分割的字符,需要重新解封到对应的 process data 中,后期方便使用。

设计

1、拿到 kafkaValue 进行 mapPartitions,减少创建类的开销,这样速度会更快。

2、对 RDD 进行 map,循环数据

3、对一行数据用#CS#分割,取出所有的值封装到 ProcessedData 中,存在 bin 当中

4、返回数据

 

三、代码编写

具体代码如下:

//数据加载封装

//将 kafka 内的数据使用“#CS#”拆分,拆分后封装成 process data

val processedData =

QueryDataPackage.queryDataLoadAndPackage(kafkaValue)

将上述代码复制到开发工具中,将 kafka 数据拆封,分装成 process data。

在新建一个 scala 的 object,然后在进行打包,目的是实现数据切分。具体代码如下:

package com.air.antispider.stream.rulecompute.businessprocess

import com.air.antispider.stream.common.bean.

import com.air.antispider.stream.dataprocess.constants.TravelTypeEnum.TravelTypeEnum importcCm.air.antispider.stream.dataprocess.constants.BehaviorTypeEnum,FlightTypeEnum, TravelTypeEnum)

import com.fasterxml.jackson.databind.ObjectMapper

import com.fasterxml.jackson.module.scala.DefaultScalaModule

import org.apache.spark.streaming.dstream.DStream

//用于实现数据分割封装

object QueryDataPackage(

object QueryDataPackage(

//分割封装

def queryDataLoadAndPackage(kafkaValue:

DStream[String])=(//使用 mapPartitions 减少包装类的创建开销

kafkaValue.mapPartitions (partitionslterator=>

//创建 json 解析

val mapper = new ObjectMapper

mapper.registerModule(DefaultScalaModule)

//将数据进行 map,一条条处理

partitionslterator.map(sourceLine=>

//分割数据

val dataArray= sourceLine.split("#CS#", -1)

会发现有报错。因为里面有而很多的包没有引用,引入进来之后,就不报错了。传递过去的数据 values,里面是一个字符串,用#cs#进行拼接。

用#cs#进行 split 操作,拿到了一个个结果,到最后将结果进行封装,封装完后就返回。最后的结果就是封装后的process data,最后再经过一串代码进行处理之后,输出的结果就不是#cs#分割的,而是 process data。

运行程序的话,还需要用到爬虫预处理的数据,俩个都执行起来后,爬虫预处理运行结果如下:

 image.png

数据预处理是 process data 爬虫也是一样就代表将一条数据塞到方法里进行拆分,拆分完封装成 process data,返回能拿到,就是数据的封装,将原始“#CS#”一条数据封装成 processedData 就做完了。

//将 kafka 内的数据使用“#CS#”拆分,拆分后封装成 process data

val processedData =

QueryDataPackage.queryDataLoadAndPackage(kafkaValue)

processedData.foreachRDD(rdd=>rdd.foreach(println)

相关文章
|
1天前
|
数据采集 存储 API
网络爬虫与数据采集:使用Python自动化获取网页数据
【4月更文挑战第12天】本文介绍了Python网络爬虫的基础知识,包括网络爬虫概念(请求网页、解析、存储数据和处理异常)和Python常用的爬虫库requests(发送HTTP请求)与BeautifulSoup(解析HTML)。通过基本流程示例展示了如何导入库、发送请求、解析网页、提取数据、存储数据及处理异常。还提到了Python爬虫的实际应用,如获取新闻数据和商品信息。
|
1天前
|
数据采集 存储 XML
给你一个具体的网站,你会如何设计爬虫来抓取数据?
【2月更文挑战第23天】【2月更文挑战第75篇】给你一个具体的网站,你会如何设计爬虫来抓取数据?
|
1天前
|
数据采集 存储 XML
深入浅出:基于Python的网络数据爬虫开发指南
【2月更文挑战第23天】 在数字时代,数据已成为新的石油。企业和个人都寻求通过各种手段获取互联网上的宝贵信息。本文将深入探讨网络爬虫的构建与优化,一种自动化工具,用于从网页上抓取并提取大量数据。我们将重点介绍Python语言中的相关库和技术,以及如何高效、合法地收集网络数据。文章不仅为初学者提供入门指导,也为有经验的开发者提供进阶技巧,确保读者能够在遵守网络伦理和法规的前提下,充分利用网络数据资源。
|
1天前
|
数据采集 数据可视化 数据挖掘
Python爬虫实战:抓取网站数据并生成报表
本文将介绍如何使用Python编写简单而高效的网络爬虫,从指定的网站上抓取数据,并利用数据分析库生成可视化报表。通过学习本文内容,读者将能够掌握基本的爬虫技术和数据处理方法,为日后开发更复杂的数据采集与分析工具打下坚实基础。
|
1天前
|
数据采集 存储 架构师
上进计划 | Python爬虫经典实战项目——电商数据爬取!
在如今这个网购风云从不间歇的时代,购物狂欢持续不断,一年一度的“6.18年中大促”、“11.11购物节”等等成为了网购电商平台的盛宴。在买买买的同时,“如何省钱?”成为了大家最关心的问题。 比价、返利、优惠券都是消费者在网购时的刚需,但在这些“优惠”背后已产生灰色地带。
|
1天前
|
数据采集 机器学习/深度学习 搜索推荐
探索数据之海——网络爬虫与数据抓取技术的应用与发展
在当今信息爆炸的时代,获取大量高质量的数据成为各行各业的迫切需求。网络爬虫和数据抓取技术作为一种有效的手段,正在被广泛应用于各个领域。本文将深入探讨网络爬虫的原理、应用场景以及未来的发展趋势,为读者带来关于数据抓取技术的全面了解。
335 5
|
1天前
|
数据采集 机器学习/深度学习 安全
Python爬虫之极验滑动验证码的识别
了解极验滑动验证码、特点、识别思路、初始化、模拟点击、识别缺口、模拟拖动。
105 0
|
1天前
|
数据采集 开发者 Python
Python爬虫实战:利用Beautiful Soup解析网页数据
在网络爬虫的开发过程中,数据解析是至关重要的一环。本文将介绍如何利用Python的Beautiful Soup库来解析网页数据,包括解析HTML结构、提取目标信息和处理特殊情况,帮助开发者更好地实现爬虫功能。
|
1天前
|
数据采集 数据挖掘 API
主流电商平台数据采集API接口|【Python爬虫+数据分析】采集电商平台数据信息采集
随着电商平台的兴起,越来越多的人开始在网上购物。而对于电商平台来说,商品信息、价格、评论等数据是非常重要的。因此,抓取电商平台的商品信息、价格、评论等数据成为了一项非常有价值的工作。本文将介绍如何使用Python编写爬虫程序,抓取电商平台的商品信息、价格、评论等数据。 当然,如果是电商企业,跨境电商企业,ERP系统搭建,我们经常需要采集的平台多,数据量大,要求数据稳定供应,有并发需求,那就需要通过接入电商API数据采集接口,封装好的数据采集接口更方便稳定高效数据采集。
|
1天前
|
数据采集 中间件 Python
Scrapy爬虫:利用代理服务器爬取热门网站数据
Scrapy爬虫:利用代理服务器爬取热门网站数据

热门文章

最新文章