数据预处理-数据解析-需求与思路|学习笔记

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 快速学习数据预处理-数据解析-需求与思路

开发者学堂课程【大数据实战项目:反爬虫系统(Lua+Spark+Redis+Hadoop 框架搭建)第三阶段数据预处理-数据解析-需求与思路】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/671/detail/11660


数据预处理-数据解析-需求与思路


内容介绍:

一、数据解析的需求

二、解析规则与思路


一、数据解析的需求

已经打完了单程还是往返的标签同时也看到了效果。接下来看下面的宏观流程,接下来要实现的目标叫做数据解析。

image.png

数据解析分为两种情况:查询类的数据解析,预定类的数据解析。在数据当中,企业的业务场景当中,数据会分为两种业务场景,一个是查询类的,一个是预定类的。

那么要做的第一件事情就是查询类的数据解析。

查询类的数据解析到底要做什么事?

解析查询类的数据的目标是来实现解析出数据当中出现的出发地、目的地、起飞时间,以及其他的信息,也就说最主要的目的就是为了解析这些数据,把它们解析出来。

这部分稍微有些复杂,因为采集的数据当中是没有出发地、目的地、起飞时间的,或者说有但是不能够通过原始数据一步解析出来。

需求:

截止到目前为止,已经对每一条数据进行了分类,计算出了它的标签,这些标签里面包括国内查询、国际查询、国内预定、国际预定,还有单程跟往返,这些已经计算好了,在解析数据里面我们会用到它们。

每一个不同的分类,也就是说国内查询、国际查询、国内预定和国际预定。

这是四种情况,那么不同的分类,它的请求参数的格式是不一样的。也就说解析这四种情况的出发地和目的地,它的解析参数是不一样的。那么同样,四种不听的业务场景解析数据的参数也是不一样的。

那么这些参数放在哪儿?

它们放在数据库中,四种情况分别有一个解析规则来一一去对应。

参数的配置放到了外部项目当中。

image.png

看上图所示页面,数据管理里有一个数据处理的页面,上面有国际国内查询,国际和国内的预定。

然后在这里面要解析出发地和目的地。

以南方航空为例,现在默认是广州到成都。8月15出发,9月15返回,这两个是日期。

image.png

日期选好以后来监控一下它的参数,点击查询,看下图,在网络流量当中,查询 Query,然后看到里面的参数有一个 depcity, 一个 arrcity 还有一个 flightdate 。

image.png

depcity 的就是出发地,arrcity 就是目的地,flightDate 是起飞日期,这就是要监控的数据,这些数据都在参数里面也就是 Body 里面。请求头里面是没有这些数据的。

要把它解析出来就要知道数据的 body 信息。那么数据的 body 有哪些?要去哪里又该怎么去解析?

image.png

看上图页面,业务场景分为查询类和预定类。而查询又分为国内查询和国际查询。预定又分为国内预定和国际预定。

image.png

目的是为了解析说出发地、目的地、起飞时间。也就是图中显示的 depCity、arrCity、flightDate,但是不能直接解析出来。

因为国内查询用的是 depCity、arrCity、flightDate 来标记出发地,目的地和起飞时间。

image.png

但是在国际查询,出发地是 dep ,目的地是 arr。起飞时间是 date  ,这和国内查询完全不一样。同样国内和国际预定里面的出发地,目的地和起飞时间也是完全不一样的,也就是数据采集完之后可以拿到数据当中的 body 信息。但是拿到信息以后该怎么解析?

所以这个界面存在的意义就是明确的告诉我们,如果数据是国内查询的业务场景,那么针对每一条数据它会把你的飞行类型和操作类型打出来了。就是上面的四种情况,要知道具体的业务场景,然后再去找这个业务场景对应的解析规则。

解析出发地目的地起飞时间以及乘机人数是最终的目的,但不能一步到位,所以需要先找到业务场景。

image.png

再去确定该用哪一个解析规则。如果数据直接传过来,它可能有很多种解析方法,那么在多种的情况下就不能够解析出来。所以必须确定是哪一种情况。

先确定业务场景,再根据 url 的表达式以及其他的一些参数确定该用哪个来解析,这个就是需求,也是数据解析的最终目的。


二、解析规则与思路

需要从数据库当中读取出解析规则,根据数据打上的标签,就是国内查询、国际查询、国内预定跟国际预定,根据前面的标签,找到规则,再去解析里面的数据。这就是这个界面存在的意义。这里面是一个配置,它落到数据库里面,打开 analyzerule 这个表:image.png

这个表里有很多字段,它们就是这个界面所存出来的结果,其中 BehaviorType 用来区分查询跟预定。

package com.air.antispider.stream.dataprocess.constants

//操作标记类别0-查询,1-预定,-1-其他

object BehaviorTypeEnum extends Enumeration{

type BehaviorTypeEnum = Value

val Query = Value(0,"Query")

val Book = value(1,"Book")

val Other = value(-1, "Other")}

这个数据表,从后往前会发现有很多的 Query ,这些都是查询的指标数据。

image.png

再往前看,直到看到预定的字段 book 。

image.png

上面的这些就是查询的相关指标的参数和预定的相关指标的参数。那么,查询跟预定前面的这些比如 flight_type,behavior_type 等是干什么的?

image.png

先看查询,先在查询类的业务场景当中,找到 query,这里有很多种情况。第三行是国内查询,第二行是国际查询,还有第四行的 c1,c2,d1。

image.png

也就是如果传过了一条数据,它是查询性的业务场景,那么要查询出发地和目的地,起飞时间这三个参数,以这三个为例,那么应该以那个为准。上图的表格能看到出发地和目的地,起飞时间都有三种选择,那么到底以哪个为准?按谁去解析?这时候就用到了前面的 flight_type,behavior_type,requestMatchExperssion 这些指标。

通过多个属性联合到一起确定出到底该用哪一个数据进行解析。

比如这里面的飞行类型 Flight_type,在 Flight_type 里,0代表国内,1代表国际。Behavior_type 的0代表查询,1代表预定。所以上表中第二三四行他们三个之间,如果进行国内查询,那么就从三种选择变成了两种选择。所以后面这几个属性的目的,都是为了确定,当有多个选择的情况确定出到底该用哪一个。这些前面的属性就是为了要确定这件事情。这件事情就是在数据库当中,数据管理界面当中的这些属性都存储在数据库中,也就是这张表。

下面在book解析的时候,他也有 book_idType,book_idCard 两种选择

image.png

那这两种选择该用哪一个?这也要用前面的这些属性来确定,如果是预定的业务场景,比如下图中的这个例子:

image.png

在预定的场景中,第一个跟第五个该用哪一个?就是通过前面这些属性来进行确定。

image.png

上面的就是解析数据的规则以及思路。

相关文章
|
1月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
163 2
|
1月前
|
XML 数据格式 开发者
解析数据的Beautiful Soup 模块(一)
解析数据的Beautiful Soup 模块(一)
数据解析之xpath 太6了
数据解析之xpath 太6了
|
23天前
|
自然语言处理 数据可视化 前端开发
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
合合信息的智能文档处理“百宝箱”涵盖文档解析、向量化模型、测评工具等,解决了复杂文档解析、大模型问答幻觉、文档解析效果评估、知识库搭建、多语言文档翻译等问题。通过可视化解析工具 TextIn ParseX、向量化模型 acge-embedding 和文档解析测评工具 markdown_tester,百宝箱提升了文档处理的效率和精确度,适用于多种文档格式和语言环境,助力企业实现高效的信息管理和业务支持。
3972 5
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
|
13天前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
36 2
|
19天前
|
JavaScript API 开发工具
<大厂实战场景> ~ Flutter&鸿蒙next 解析后端返回的 HTML 数据详解
本文介绍了如何在 Flutter 中解析后端返回的 HTML 数据。首先解释了 HTML 解析的概念,然后详细介绍了使用 `http` 和 `html` 库的步骤,包括添加依赖、获取 HTML 数据、解析 HTML 内容和在 Flutter UI 中显示解析结果。通过具体的代码示例,展示了如何从 URL 获取 HTML 并提取特定信息,如链接列表。希望本文能帮助你在 Flutter 应用中更好地处理 HTML 数据。
100 1
|
21天前
|
数据采集 机器学习/深度学习 数据挖掘
10种数据预处理中的数据泄露模式解析:识别与避免策略
在机器学习中,数据泄露是一个常见问题,指的是测试数据在数据准备阶段无意中混入训练数据,导致模型在测试集上的表现失真。本文详细探讨了数据预处理步骤中的数据泄露问题,包括缺失值填充、分类编码、数据缩放、离散化和重采样,并提供了具体的代码示例,展示了如何避免数据泄露,确保模型的测试结果可靠。
32 2
|
1月前
|
数据采集 XML 前端开发
Jsoup在Java中:解析京东网站数据
Jsoup在Java中:解析京东网站数据
|
2月前
|
存储 弹性计算 缓存
阿里云服务器ECS通用型实例规格族特点、适用场景、指标数据解析
阿里云服务器ECS提供了多种通用型实例规格族,每种规格族都针对不同的计算需求、存储性能、网络吞吐量和安全特性进行了优化。以下是对存储增强通用型实例规格族g8ise、通用型实例规格族g8a、通用型实例规格族g8y、存储增强通用型实例规格族g7se、通用型实例规格族g7等所有通用型实例规格族的详细解析,包括它们的核心特点、适用场景、实例规格及具体指标数据,以供参考。
阿里云服务器ECS通用型实例规格族特点、适用场景、指标数据解析
|
19天前
|
JSON 前端开发 JavaScript
API接口商品详情接口数据解析
商品详情接口通常用于提供特定商品的详细信息,这些信息比商品列表接口中的信息更加详细和全面。以下是一个示例的JSON数据格式,用于表示一个商品详情API接口的响应。这个示例假定API返回一个包含商品详细信息的对象。

推荐镜像

更多