Excel电商数据分析与应用 课件 3.数据采集方法、4.数据的清洗方法_第1页
Excel电商数据分析与应用 课件 3.数据采集方法、4.数据的清洗方法_第2页
Excel电商数据分析与应用 课件 3.数据采集方法、4.数据的清洗方法_第3页
Excel电商数据分析与应用 课件 3.数据采集方法、4.数据的清洗方法_第4页
Excel电商数据分析与应用 课件 3.数据采集方法、4.数据的清洗方法_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据采集方法3.1数据采集的基础知识3.2数据采集1爬虫权限申明23CONTENTSURL构成原理网站的构成4HTML请求与响应5静态数据采集6动态数据采集爬虫权限申明PARTONE爬虫权限申明在开展数据采集工作前需要了解数据采集的基础知识,只有了解了数据采集的知识才能保证数据采集工作的正常开展。大多数网站都有一个名为robots.txt的文档,用于判断是否可以禁止访客获取数据。对于没有设定robots.txt的网站,可以通过网络爬虫获取没有加密口令的数据,也就是该网站所有页面数据都可以爬取。以淘宝网为例,浏览器访问/robots.txt,淘宝网允许了百度蜘蛛爬取其网站目录,而对于没有指定的用户,则是全部禁止爬取,代码如下。User-Agent:BaiduspiderDisallow:/URL构成原理PARTTWOURL构成原理统一资源定位符(UniformResourceLocator,URL),是用于完整地描述Internet网页和其他资源地址的一种标识方法。互联网上每个文件都有其对应的唯一URL。基本格式如下。scheme://host[:port#]/path/…/[?query-string][#anchor]其中scheme:协议(如http,https,ftp);host:服务器的IP地址或者域名;port#:服务器的端口(如果是走协议默认端口,缺省端口80);path:访问资源的路径;query-string:参数,发送给http服务器的数据;anchor:锚(跳转到网页的指定锚点位置)。Protocol(协议)指定使用的传输协议,数据采集中最常遇到的是HTTP/HTTPS协议。Hostname(主机名)是指存放资源的服务器的域名系统(DNS)主机名或IP地址。Port(端口号)各种传输协议都有默认的端口号,如http协议的默认端口为80。如果输入时省略,则使用默认端口号。Path(路径)由零或多个“/”符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。Parameters(参数)这是用于指定特殊参数的可选项。Query(查询)可选,用于给动态网页传递参数,可有多个参数,用“&”符号隔开,每个参数的名和值用“=”符号隔开。Fragment(信息片断)用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。例:网站的构成PARTTHREEHTML网页由3个部分组成,分别是HTML(超文本标记语言)、CSS(层叠样式表)和JavaScript(活动脚本语言)。用人体来比喻的话,HTML是人的骨架,并且定义了人的嘴巴、眼睛、耳朵等器官要长在哪里。CSS是人的外观细节,如嘴巴长什么样子,眼睛是双眼皮还是单眼皮,是大眼睛还是小眼睛,皮肤是黑色的还是白色的等特征。JavaScript表示人的技能,例如跳舞、唱歌或者演奏乐器。(HTML,HyperTextMarkupLanguage)超文本标记语言是一种用于创建可从一个平台移植到另一平台的超文本文档的标记语言,常用于创建Web页面。HTML文件是带有格式标识符和超文本链接的内嵌代码的ASCII文本文件——HTML结构。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格、链接等。HTML网页结构包括头部(head)、主体(body)两大部分。头部描述浏览器所需的信息,主体包含所要说明的具体内容。HTML是制作网页的基础,在网络营销中介绍的静态网页,就是以HTML为基础制作的网页,早期的网页都是直接用HTML代码编写的,不过现在有很多智能化的网页制作软件(常用的如FrontPage,Dreamweaver等)通常不需要人工写代码,而是由这些软件自动生成代码。尽管不需要自己写代码,但了解HTML代码仍然非常重要,了解认识HTML是学习网络爬虫的基础知识。HTML

HTML是整个网页的结构,相当于整个网站的框架。HTML的标签都是成对出现的,常见的标签如表1。常见的HTML标签<html>...</html>表示标记中间的元素是网页<body>...</body>表示用户可见的内容<div>...</div>表示框架<p>...</p>表示段落<li>...</li>表示列表<img>...</img>表示图片<h1>...</h1>表示标题<a-href=””>...</a>表示超链接表1CSS(CSS,CascadingStyleSheets)层叠样式表是用于表现HTML等文件样式的一种计算机语言。CSS不仅可以静态地修饰网页,还可以和各种脚本语言一起动态地对网页各元素进行控制。CSS是控制样式结构的语言,主要用于控制网页结构和信息表现。CSS代码可以直接写在HTML网页代码中或者单独写在CSS文件中。无论哪一种方式,样式单都包含将样式应用到指定类型的元素的规则。样式规则由一个或多个样式属性及其值组成,外部使用时,扩展名为.css的文档放置样式单规则,只要引用.css文档即可。样式规则可以用来控制网页中的元素,如文本段落以及链接的格式化指令。内部样式单可以直接放在网页中,外部样式单保存在一个或多个独立的文档中,网页只要通过一个特殊标签就可以引入外部样式单。CSS中的“层叠”表示样式单规则应用于HTML文档元素的方式。CSS样式单中的样式形成一个层次结构,更具体的样式覆盖通用样式。样式规则的优先级由CSS根据这个层次结构决定,从而实现级联效果。JavaScriptJavaScript是一种具有面向对象能力的、解释型的程序设计语言。更具体一点,它是基于对象和事件驱动并具有相对安全性的消费者端脚本语言。因为它不需要在语言环境下运行,只需要有支持它的浏览器即可。它主要用于验证发往服务器端的数据、增加Web互动、加强用户体验度等。

交互的内容和各种特效都在JavaScript中,JavaScript描述了网站中的各种功能。HTML请求与响应PARTFOURHTML请求与响应HTML的工作机制是当用户在浏览器的地址栏中输入一个网址并按【Enter】键之后,浏览器会向HTTP服务器发送HTTP请求。例如,在浏览器访问时,浏览器发送一个Request请求获取/的HTML文件,通过服务器把Response文件对象发送回给浏览器。浏览器分析Response中的HTML,发现其中引用了很多文件,比如Images文件、CSS文件、JavaScript文件。浏览器会自动再次发送Request去获取Images文件、CSS文件或者JavaScript文件。当所有的文件都下载成功后,网页会根据HTML语法结构,完整地显示出来。例如,打开,按下【F12】键进入开发者模式,单击【Network】(网络)选项,如图2所示。图2HTML请求与响应刷新页面(可按【F5】键),可获取许多文件,这个过程也称为抓包,如图3所示。常见的HTML请求方法有:GET、POST。两种方法的权限不同:GET可查看数据;POST除了有查看权限,还有修改、删除、增加的权限,因此许多黑客会利用POST的方法对服务器数据进行篡改。图3静态数据采集PARTFIVE静态数据采集静态数据是指采集的目标数据在网页源码中,而且是一次性加载在网页中。例:采集休斯敦火箭队球员最新赛季的历史数据。球员表现数据如图4所示。图4静态数据采集解:如图3-4所示,在Excel的【数据】选项卡中,单击【自网站】选项,获取网站的数据。如图3-5所示,在弹出的【从Web】对话框中,键入网址。图5图6静态数据采集如图7所示,在【导航器】对话框中通过表视图可以观察到“Table0”是目标数据,单击导航器中的【Table0】表,再单击【编辑】按钮进入PowerQuery编辑器。图7静态数据采集如图8所示,进入PowerQuery编辑器后,发现一列空列,单击鼠标右键,在弹出的快捷菜单中单击【删除】选项,将该列删除。如图9所示,筛选球员数据,将“总计”“全队数据”和“对手数据”等无用的数据过滤掉。图8图9静态数据采集如图10所示,在PowerQuery编辑器【开始】选项卡中单击【关闭并上载】选项,将数据导入Excel中。加载在表格中的数据,如图11所示。图10图11静态数据采集例:批量采集球队最新赛季的历史数据,如表2所示球队名称缩写马刺SAS灰熊MEM火箭HOU小牛DAL黄蜂NOH表2解:将数据填入Excel工作表,如图12所示,在【数据】选项卡中单击【自表格/区域】选项,将数据导入PowerQuery编辑器。如图13所示,由于数据不是表,因此会弹出“创建表”对话框,在对话框中勾选【表包含标题】。图12图13静态数据采集如图14所示,将数据导入PowerQuery编辑器后,先创建URL,在【添加列】选项卡中单击【自定义列】选项。图14图15如图15所示,在【自定义列】界面的【自定义列公式】文本框中键入“/team/“&[缩写]&”.html”,将URL的几个部分合并在一起。静态数据采集创建好URL后再次添加自定义列,采集URL数据,如图16所示,在【添加列】选项卡中单击【自定义列】选项。如图17所示,在弹出的“自定义列”设置界面中,在自定义列公式文本框中,键入“Web.Page(Web.Contents([URL])){0}[Data]”。图16图17M函数说明:Web.Page是以网页的方式加载数据。Web.Contents是将网页以二进制文件的格式下载。{0}[Data]是打开网页中的第一张表格,也就是上例的“Table0”。静态数据采集如图18所示,确定自定义列后,如果是首次连接该域名会提示数据隐私设置,勾选【忽略此文件……】,单击【保存】按钮即可采集到数据。如图19所示,展开Table,空列可以直接取消勾选,并且取消勾选【使用原始列名作为前缀】。图18图19静态数据采集如图20所示,展开数据后,取消勾选“总计”“全队数据”“对手数据”。如图21所示,按住【Ctrl】键,将不用的列选中,单击鼠标右键,在弹出的快捷菜单中单击【删除列】选项。图20图21静态数据采集如图22所示,在PowerQuery编辑器【开始】选项卡中单击【关闭并上载】选项。加载在表格的数据,如图23所示。图22图23动态数据采集PARTSIX动态数据采集表3静态数据是指采集目标数据在JS或XHR中,在网页中有特定操作才会向服务器请求加载。例:现在需要批量采集马刺和火箭两只球队在2017年和2018年两年的球员表现数据,以便于对比两只球队的球员表现。解:如表3所示,先根据球队名称、缩写和年份创建球队信息表。球队名称缩写年份马刺SAS2017马刺SAS2018球队信息表球队名称缩写年份火箭HOU2017火箭HOU2018图22如图22所示,在浏览器的开发者模式下,进入NetWork(网络)界面,选择不同年份赛季,此时右侧的NetWork窗口的右侧会新增文件链接,单击该新增文件,在Preview窗口可查看文件内容。如图23所示,单击【Headers】选项卡,从“Headers”窗口可以看到请求链接RequestURL:/team/stat_box_team.php?team=HOU&season=2017&col=pts&order=1&isseason=1。图23动态数据采集图24图25数据加载好后,就可以将需要采集的球队和年份数据作为参数导入采集过程。如图24所示,将表3中的数据填入Excel工作表,在【数据】选项卡中单击【自表格/区域】选项,将数据导入PowerQuery编辑器。如图25所示,由于数据不是表格形式,会弹出“创建表”对话框,在对话框中勾选【表包含标题】选项。动态数据采集图26图27如图26所示,进入PowerQuery编辑器后,先将年份的格式设置为文本,便于后续作为参数传入URL中。创建目标URL,如图27所示,在【添加列】选项卡中单击【自定义列】选项。动态数据采集图28图29如图28所示,键入“="/team/stat_box_team.php?team="&[缩写]&"&season="&[年份]&"&col=pts&order=1&isseason=1"”并将新列名设置为“URL”。创建好URL后,根据URL下载文件,如图29所示,在【添加列】选项卡中单击【自定义列】选项。动态数据采集图30键入“Web.Page(Text.FromBinary(Web.Contents([URL]),65001)){0}[Data]”并将新列名设置为“URL”,如图3-32所示。动态数据采集M函数说明:Text.FromBinary是将二进制文件转成文本,其语法结构为:Text.FromBinary(binaryasnullablebinary,optionalencodingasnullablenumber)asnullabletext。本例使用该函数是为了解决乱码问题,第二个参数65001表示UTF8编码。图30成功下载数据后,如图30所示,展开Table,空列可以直接取消勾选,并且取消勾选【使用原始列名作为前缀】。展开数据后,将“总计”“全队数据”“对手数据”过滤掉,如图31所示。动态数据采集图31图32如图3-35所示,在PowerQuery编辑器的【开始】选项卡中,单击【关闭并上载】选项。加载的球员表现数据,如图3-36所示。动态数据采集图33感谢观看数据的清洗方法4.1数据规整&4.2数据合并与分组&4.3数据变形1数据类型2CONTENTS缺失值与异常值处理3纵向合并4横向合并5数据分组6数据透视7数据逆透视数据类型PARTONE数据类型

数据类型是数据一致性检查的基本项,在严谨的数据清洗过程中每个列(字段)都需要指定数据类型,否则在后续的分析过程中有可能因为数据类型不符合算法要求导致出错。在Excel的许多场景应用中无须指定数据的类型,但在PowerQuery中必须指定数据类型。在PowerQuery编辑器【转换】选项卡中修改数据类型,也可以全选数据,单击【检测数据类型】选项即可。数据类型数据类型示例逻辑true

false整数0

1

-1

小数0.31.3-1.3时间#time(09,15,00)文本"hello"二进制#binary("AQID")常见的数据类型如表:缺失值与异常值处理PARTTWO缺失值与异常值处理缺失值和异常值的处理有两种方法,第一种是删除法,删除缺失或异常数据的记录,使用此方法的前提条件是删除记录不会对数据分析的结果产生影响。第二种是插补法,当删除整条记录对分析结果有严重影响时,根据实际情况可用0插补也可以用均值插补。

在PowerQuery编辑器【开始】选项卡中使用【替换值】功能替换缺失值或异常值。如图:纵向合并PARTTHREE纵向合并纵向合并在数据库中也称为追加查询,常用于多张相同结构字段的表格合并成一张表格的场景。

例:现有100家门店的销售数据,分别在100个文件中,将100家门店的销售数据合并成一张表。纵向合并①在Excel【数据】选项卡中选择【获取数据】,在【自文件】中选择【从文件夹】选项,将数据导入PowerQuery编辑器。纵向合并②在弹出的“文件夹”对话框中,选择文件夹路径。纵向合并③Excel2019版本有组合功能可以一键组合成一个文件,Excel2010/2016版本可参考后续操作。单击【组合】后会再弹出下拉菜单,选择【合并和编辑】选项。纵向合并④针对部分版本没有组合功能的操作,需要进入编辑器中编辑,每一个Binary都是一个二进制文件,数据以二进制文件形式被PowerQuery编辑器读取。纵向合并⑤在【添加列】选项卡中,单击【自定义列】选项。输入“Csv.Document([Content],[Encoding=936])”将二进制文件转换成表格。Csv.Document是将二进制文件转换成Csv格式的表格。[Encoding=936]是指定中文编码为GBK。纵向合并⑥展开Table,取消勾选【使用原始列名作为前缀】。纵向合并⑦发现展开后字段名称在记录中,需要在【开始】选项卡单击【将第一行用作标题】选项,第一行的记录会转变成字段名(标题)。纵向合并⑧由于每一个文件都有字段名称,因此需要将多余的名称过滤掉,如图4-14所示,对【日期】进行筛选,将“日期”过滤掉。纵向合并⑨在【开始】选项卡中单击【关闭并上载】选项,将数据导入Excel,可以观察合并后的数据结果。横向合并PARTFOUR横向合并横向合并在数据库中称为合并查询,合并查询分为左外部、右外部、完全外部、内部、左反和右反6种连接方式。

下图为左外部连接示意图和右外部连接示意图左外部连接示意图右外部连接示意图横向合并例:现有两张表,分别是学生的基本信息表和学生的成绩表,若分析班级不同性别的学生成绩的差异,需要将两张表进行合并。学生基本信息表姓名性别年龄张三男19李四男18陈红女19孙玉女19学生成绩表姓名学科成绩张三语文82张三数学80张三英语79李四语文99李四数学77李四英语98陈红语文98陈红数学96陈红英语83孙玉语文95孙玉数学94孙玉英语84横向合并①:选中表格,在【数据】选项卡中单击【自表格/区域】(某些版本是【从表格】的字样)选项,分别将两张表格导入PowerQuery编辑器。横向合并②在PowerQuery编辑器的【开始】选项卡中,单击【合并查询】选项,在【合并】对话框中,表1和表2分别选中【姓名】字段,连接种类选择【左外部】。横向合并③合并后展开表,由于信息表中已经有姓名字段,因此取消勾选【姓名】,并且取消勾选【使用原始列名作为前缀】。横向合并下图为完全外部连接返回左表和右表的所有数据、内部连接仅返回左表和右表匹配的所有数据、左反连接返回仅左表有的数据、右反连接返回仅右表有的数据。完全外部连接示意图内部连接示意图左反连接示意图右反连接示意图横向合并例:某企业针对老消费者开展了赠品活动,现有已领取礼品的消费者名单如表4-3所示,需要排查未领礼品的人员名单,下表是所有消费者的名单。已领礼品消费者名单张三李四王五赵六所有消费者名单张三李四王五赵六钱七孙八横向合并前面步骤与上个案例相同,不同的是在“合并”窗口,连接方式选择【左反】。合并后,就可以找到没有领取的名单,表中的空表可以直接删除。最后在【开始】选项卡中单击【关闭并上载】选项,将数据导入Excel,即可得到消费者名单。数据分组PARTFIVE数据分组数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论