Python爬虫-数据采集和处理

文章目录

    • 数据
      • 数据类型
    • 数据分析过程
    • 数据采集
      • 数据采集源
      • 数据采集方法
    • 数据清洗
      • 清洗数据
      • 数据集成
      • 数据转换
      • 数据脱敏

数据

《春秋左传集解》云:“事大大其绳,事小小其绳。”体现了早期人类将事情的“大小”这一性质抽象到“绳结大小”这一符号上从而产生数据的过程。
在这里插入图片描述
数据:是指对客观事物进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。
早期数据的抽象还很朴素,随着人类文明的进步这种抽象越来越复杂,到了现代,磁盘上磁性物质磁极的排列就是经过高度抽象的符号,需要配套的设备才能读取成人类可以理解的形式。
信息:是通过数据的排列组合传递的概念或者方法

数据中的“数”包括狭义上的数字,还包括具有一定意义的文字、字母、数字符号的组合、图形、图像、视频、音频等。数据里的信息有时难以直接传递给人,需要加工之后才能变成人易于理解的信息。

数据类型

  • 状态类数据。记录了某一时间点描述对象所处的状态,对客观世界实体的性质的抽象表示。存储方式:存储快照或者SCD方式。
  • 事件类数据。经常涉及到多个对象,记录了这些对象之间的互动情况。存储方式:直接存储或按时间分区存储。
  • 混合类数据。是事件类数据的延申,所描述的事件发生过程较长,同时涉及到状态类数据和事件类型。存储方式:分离保存,使用时合并。
  • 结构化数据。结构化数据的特点是高度组织、十分整齐且具有特定的格式。可以轻松的以表格的形式进行展示,但扩展性很差。
  • 半结构化数据。是结构化数据的一种形式,也被称为自描述的结构,包含用来分隔语义元素以及对记录和字段进行分层的相关标记。对于半结构化数据来说,属性的顺序与数量都是可以变化的。
  • 非结构化数据。非结构化数据不规则或不完整,没有预定义的数据模型,无法使用数据库二维逻辑或者树结构来表现,因此收集,处理和分析非结构化数据也是一项重大挑战。

数据分析过程

(1)数据采集。传统的数据采集会有以下一些步骤:抽样、测量、编码、输入、核对。而大数据时代,各种传感器、视频录制、音频录制设备的普及,各种互联网应用对用户行为的记录,使得大量数据涌入。
(2)数据预处理。针对收集到的数据的特点,分析其可能存在的缺陷,采用适当的方法对其进行批量加工处理,得到可靠的、高质量的数据。
(3)数据存储于管理。针对数据的特点,采取有效的存储硬件与软件,实现可靠、安全、易用的数据存储。
(4)数据分析与知识发现。将预处理之后的信息进行进一步的分析,完成信息到认知的过程。从整理后的数据中学习和发现知识,形成结论。
(5)数据后处理。将数据进行可视化,提供给决策支持系统等使用方。

数据采集

数据采集使数据分析的起点,通过各种技术手段实时或者非实时的收集到据源产生的数据,并加以利用。

数据采集需要注意全面性、多维性与高效性。

数据采集源

  1. 传感器数据。传感器是一种检测装置,能感受到被测量的信息,并能将感受到的信息,按一定规律变换成为电信号或其他所需形式的信息输出,以满足信息的传输、处理、存储、显示、记录和控制等要求。
  2. 日志文件。企业的业务服务器每天都会产生大量的日志文件,用于记录针对数据源执行的各种操作。这些日志里埋藏着巨大的价值,是决策支持系统的重要数据来源。
  3. 互联网数据。互联网数据主要指互联网上的用户生成内容以及网站发布内容。这些数据可以通过相应的平台方提供的数据接口得到。如果没有数据接口,则需要采用网络爬虫技术来完成数据采集工作,需要遵循一定的爬虫协议。
  4. 企业业务系统数据。一般企业都有传统的关系型数据库来存储业务数据,这些数据库发展多年,具有高度的可靠性与成熟的数据组织模式。随着非结构化数据的快速增长,一些企业意识到了非结构化数据的价值,也会采用NoSQL数据库用于数据的存储。除了直接从业务系统数据库取得数据分析外,也可以采用构建数据仓库的模式,为企业决策提供数据源。

数据采集方法

  1. 系统日志采集
    可以分为用户行为日志、业务变更日志、系统运行日志。由于日志记录的信息详细、随时间不断累积,数据量非常大,所以这些工具均采用分布式框架,数据采集和传输速度可达到每秒数百MB。
    Hadoop的Chukwa、Cloudera的Flume、Facebook的Scribe
  2. 分布式消息订阅分发
    消息订阅分发是消息系统模式,在这种模式下,消息订阅者都可以消费发布者产生的消息。
    Kafka
  3. ETL
    ETL常用于数据仓库的构建。ETL从散落的业务数据库中抽取数据,并根据实际的商务需求对数据进行转换,再将转换后的数据加载到目标数据存储结构中。ETL的过程实际上也包含了数据预处理环节。
    Kettle、DataPipeline、Talend等
  4. 网络数据采集
    主要采用网络爬虫工具。网络爬虫(Web Crawler)是指一类能够自动化访问网络并抓取某些信息的程序,有时候也被称为“网络机器人”。它们被广泛用于互联网搜索引擎及各种网站的开发中,同时也是大数据和数据分析领域中的重要角色。爬虫可以按一定逻辑大批量采集目标页面内容,并对数据做进一步的处理。

数据清洗

整体流程:
在这里插入图片描述
数据的质量一定程度上能决定分析结果的质量,然而通过上一节的各种渠道收集到的数据,往往存在各种各样的缺陷。数据清洗就是找到数据的缺陷,并采取合适的方法对数据进行处理(修复缺陷或者直接删除),最终得到一份可用、甚至是完美的数据。
数据清洗可以采用人工清洗和自动清洗两种方式。数据清洗主要的应用场景是数据仓库构建、数据挖掘以及数据质量管理。

清洗数据

数据清洗有四种:数据缺失值处理、数据异常值处理、数据类型转换、重复值处理

  1. 数据缺失清洗
    数据缺失是常见的数据缺陷,针对这种情况有以下几种常用的处理方法。
  • (1)估算。可以通过未缺失的数据来给出缺失值的估算值,或是通过分析变量的实际含义,得到变量之间的相关性分析或者逻辑推论,利用这些信息来估计缺失值。
  • (2)整例删除。当异常值或者缺失值占比很小时,可以采用直接将整条数据直接删除的方法。
  • (3)变量删除。当某一变量缺失很多时,如果经过分析,这一变量对于所关注的问题影响有限,可以考虑将该变量数据全部删除。这样做法减少了供分析用的变量,但没有改变样本数量。
  1. 异常值的判别需要一定的经验,处理异常值是容易被忽略的一步。可以通过为每个变量设定一个合理的取值范围,为有关联的变量设定合理的相互关系来筛选异常值。
  2. 数据类型会影响后续数据分析环节代码的编写,需要在预处理时进行转换。
  3. 重复值会影响算法性能以及结论准确性,需要在数据预处理时进行重复性检验。如果存在重复值,还需要进行重复值的删除。

数据清洗的评价标注
可信性。衡量可信性的指标有:精确性、完整性、一致性、有效性、唯一性等。
可用性。衡量可用性的指标有:时间性、稳定性。

数据集成

数据集成指将多个数据源的数据结合在一起,形成统一的数据集。主要需要考虑以下几个问题。

  1. 模式集成问题。数据集成需要将各个数据源以及现实世界当中的实体正确匹配。例如,同一个实体属性在不同数据库中可能命名不同,识别出这种差异并将其统一起来是必要的。
  2. 冗余问题。某些属性可以通过其他属性的运算得到,如果这些属性存在于同一个表中,则出现了数据冗余。冗余是否去除需要根据实际数据使用需求来判断。
  3. 数值冲突检测与消除。同一实体属性在不同数据源里采用的单位、编码等可能不同。这种语义差异是数据集成需要重点检测并解决的。

数据转换

数据转换的目的是使数据适合于后续的采用的分析方法。有如下几种方式。

  1. 平滑处理。对数据进行平滑处理可以减弱数据中的噪声。常用的平滑算法有:分箱、回归和聚类等。
  2. 聚集处理。在某一维度上对数据进行汇总操作。聚集操作可以构造数据立方体,对数据进行从细粒度到粗粒度的分析。
  3. 泛化处理。用更抽象的高层次概念来取代低层次的数据对象。例如,年龄属性可以由底层次的数值抽象(映射)到高层次的“青年、中年、老年”概念。
  4. 标准化处理。将某一属性的所有属性值按一定规则缩放到一个给定的区间,通常为[0, 1]区间。常用方法有:最值标准化、均值方差标准化。
  5. 属性构造处理。通过已有数据属性之间的运算,得到新的属性,供后续分析使用。例如可以根据人口数量和GDP,计算出新的属性值——人均GDP。

数据脱敏

企业在运行过程中会将客户业务相关的各种隐私存储进数据库,这些数据具有极高的商业价值,一旦泄露,会造成企业客户资源的流失,同时也会降低客户对企业的不信任感,严重时甚至可能违反相关法律规定。因此对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护,是一个惯用的做法,称之为数据脱敏。身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。
脱敏原则:

  1. 保持原有数据特征。数据脱敏前后数据特征应保持不变
  2. 保持数据的一致性。数据间有一定的关联。
  3. 保持业务规则的关联性。数据的业务语义在脱敏后应保持不变
  4. 多次脱敏后数据的一致性。相同的数据可能会在不同场景要求下进行多次脱敏处理,需要确保每次脱敏后数据都可以保持一致。
    脱敏方法:
  • 数据替换。用设置的固定虚假值来替换真实值。
  • 无效化。可采取截断、加密、隐藏等使敏感数据脱敏。
  • 随机化。采用与原数据具有相同统计特征的随机数据来替换真实数据。
  • 偏移和取整。通过随机移位改变数值型数据。例如可以对时间数据“20:19”变为“20:00”。在保护敏感数据的同时尽可能的保留原有信息。
  • 掩码屏蔽。多用于账户类数据,使用掩码对账户数据中的前端、中间或者尾部进行屏蔽。例如,外卖平台通过对手机号后四位以外的数字进行掩码屏蔽来保护客户隐私。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/757214.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【单点知识】基于实例讲解PyTorch中的Transforms类

文章目录 0. 前言1. 基本用法1.1 转换为Tensor1.2 图像大小调整1.3 随机裁剪1.4 中心裁剪1.5 随机翻转1.6 随机旋转1.7 填充1.8 组合变换 2. 进阶用法2.1 归一化2.2 色彩空间转换2.3 颜色抖动2.4 随机仿射2.5 透视变换2.6 自定义变换 0. 前言 按照国际惯例,首先声明…

Day51-Nginx多实例知识与大厂企业级实战

Day51-Nginx多实例知识与大厂企业级实战 1. 什么是nginx多实例?2. 为什么要用多实例?3. 大厂数百个业务项目,如何来管理?4. 大厂上百项目web分用户解决方案4.1 编译nginx环境实践:4.2 zuma实例(利用普通用户权限将不同…

前端项目,个人笔记(二)【Vue-cli - 引入阿里矢量库图标 + 吸顶交互 + setup语法糖】

目录 1、项目中引入阿里矢量库图标 2、实现吸顶交互 3、语法糖--<script setup> 3.1、无需return 3.2、子组件接收父组件的值-props的使用 3.3、注册组件 1、项目中引入阿里矢量库图标 步骤一&#xff1a;进入阿里矢量库官网中&#xff1a;iconfont-阿里巴巴矢量…

教务管理系统(java+mysql+jdbc+Druid+三层架构)

1、项目要求 1.1数据库表描述 设计一个教务管理系统&#xff0c;要求如下&#xff1a; 系统涉及的表有 account表&#xff08;账号表&#xff09; teacher表&#xff08;教师表&#xff09; student表&#xff08;学生表&#xff09; course表 (课程表) score表&#xff08;成…

Python内置对象

Python是一种强大的、动态类型的高级编程语言&#xff0c;其内置对象是构成程序的基础元素。Python的内置对象包括数字、字符串、列表、元组、字典、集合、布尔值和None等&#xff0c;每种对象都有特定的类型和用途。 01 什么是内置对象 这些对象是编程语言的基础构建块&…

STP环路避免实验(思科)

华为设备参考&#xff1a;STP环路避免实验&#xff08;华为&#xff09; 一&#xff0c;技术简介 Spanning Tree Protocol&#xff08;STP&#xff09;&#xff0c;即生成树协议&#xff0c;是一种数据链路层协议。主要作用是防止二层环路&#xff0c;并自适应网络变化和故障…

Unity2D实现鼠标拖动物体移动(简单好抄)

1.新建脚本&#xff0c;并将脚本拖到你想要拖动的物体上即可 using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine;public class text : MonoBehaviour {private Vector3 offset;public int x 1;void OnMouseDown(…

SAP前台处理:物料主数据创建<MM01>之销售视图

一、背景&#xff1a; 终于来到了物料主数据&#xff0c;我觉得物料账是SAP最重要的一项发明&#xff0c;也一直是SAP的一项重要优势&#xff0c;物料账记录了一个个物料的生生不息&#xff1b; 本章主要讲解物料主数据和财务相关的主要内容&#xff1a;这里特别提示由于作者…

matlab软件基础

第1讲 MATLAB初步 MATLAB是矩阵实验室&#xff08;Matrix Laboratory&#xff09;的简称&#xff0c;是美国MathWorks公司出品的商业数学软件&#xff0c;用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。MATLAB和Mathematica、Maple并称为三…

Linux 发布项目到OpenEuler虚拟机

后端&#xff1a;SpringBoot 前端&#xff1a;VUE3 操作系统&#xff1a;Linux 虚拟机&#xff1a;OpenEuler 发布项目是需要先关闭虚拟机上的防火墙 systemctl stop firewalld 一、运行后端项目到虚拟机 1、安装JDK软件包 查询Jdk是否已安装 dnf list installed | grep jd…

Redis数据结构对象中的类型检查与命令多态、内存回收

类型检查与命令多态 概述 redis中用于操作键的命令基本上可以分为两种类型。其中一种命令可以对任何类型的键执行&#xff0c;比如说DEL命令、EXPIRE命令、RENAME命令、TYPE命令、OBJECT命令等. 而另一种命令只能对特定类型的键执行&#xff0c;比如说 1.SET、GET、APPEND、…

OPTEE v3.20.0 FVP环境搭建

目录 一、前提条件 二、下载fvp代码 三、下载工具链 四、下载Foundation_Platform FVP平台 五、编译及运行 一、前提条件 1、安装如下的依赖工具 sudo apt-get install android-tools-adb android-tools-fastboot autoconf \ automake bc bison build-essential ccache c…

windows管理github代码

资料 windows SSH下载github

51单片机—AD/DA

目录 1.AD/DA元件介绍 2.运算放大器 3.原理分析 4.性能指标 5.内部芯片时序 6.程序实操 7.原理图 1.AD/DA元件介绍 一般传感器的值会随参数的值变化&#xff0c;AD一般对电压进行转换&#xff0c;AD有多个通道&#xff0c;但是DA只有一个通道&#xff0c;且AD的运用较为广…

路由器怎么做端口映射

路由器在网络中起到了连接不同设备和提供网络服务的重要作用。端口映射是一项常见的操作&#xff0c;它允许外部网络中的设备通过路由器访问内部网络中的设备。我们将介绍如何在路由器上进行端口映射的设置。 理解端口映射 在开始操作之前&#xff0c;我们需要了解一些基本概念…

反射 Reflection

反射 反射的概念 反射机制允许程序在执行期借助于ReflectionAPI取得任何类的内部信息(比如成员变量&#xff0c;构造器&#xff0c;成员方法等等)&#xff0c;并能操作对象的属性及方法。反射在设计模式和框架底层都会用到加载完类之后&#xff0c;在堆中就产生了一个Class类型…

Flutter 在 Windows 下的开发环境搭建(Flutter SDK 3.19.2)【图文详细教程】

Git 下载与安装 对于 Flutter 3.19&#xff0c;Git 版本需要 2.27 及以上 Git 下载&#xff1a; Git 官网&#xff1a;https://git-scm.com/Git 下载淘宝镜像&#xff1a;https://registry.npmmirror.com/binary.html?pathgit-for-windows/ 对于 Git 的安装教程&#xff0c;…

Python分析无人驾驶汽车在桂林市文旅行业推广的问卷

【项目背景】 通过市场调研、文本分析、访谈和问卷调查等方法&#xff0c;探讨&#xff1a; 网民对无人驾驶汽车出行服务的态度。无人驾驶安全员的行业背景。不同人群在旅游时的交通选择偏好。游客及当地居民对桂林市文旅路线的交通满意度。乘客对无人驾驶汽车的满意度。桂林…

超快速排序(蓝桥杯,归并排序,acwing)

题目描述&#xff1a; 在这个问题中&#xff0c;您必须分析特定的排序算法----超快速排序。 该算法通过交换两个相邻的序列元素来处理 n 个不同整数的序列&#xff0c;直到序列按升序排序。 对于输入序列 9 1 0 5 4&#xff0c;超快速排序生成输出 0 1 4 5 9。 您的任务是确…

Selenium不同版本配置自动下载驱动及打包细节

Selenium配置浏览器驱动 自动下载浏览器驱动的方法 selenium4.7.0自动下载浏览器驱动的方法 selenium4.11.0 或4.11.1手动设置浏览器驱动路径的方法pyinstaller打包程序时同时打包ChromeDriverchromedriver路径需要sys._MEIPASS的路径进行引用方法一&#xff1a;通过–add-data…