大数据采集与预处理(微课版) 课件 项目1、2 初识动态网页数据采集与预处理、动态网页数据采集_第1页
大数据采集与预处理(微课版) 课件 项目1、2 初识动态网页数据采集与预处理、动态网页数据采集_第2页
大数据采集与预处理(微课版) 课件 项目1、2 初识动态网页数据采集与预处理、动态网页数据采集_第3页
大数据采集与预处理(微课版) 课件 项目1、2 初识动态网页数据采集与预处理、动态网页数据采集_第4页
大数据采集与预处理(微课版) 课件 项目1、2 初识动态网页数据采集与预处理、动态网页数据采集_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

项目一

初识动态网页数据采集与预处理认识大数据采集与预处理目录Content1搭建数据采集与预处理开发环境2数据来源较多项目导言零数据类型丰富数据存储数据处理学习目标零知识目标了解数据采集相关知识;熟悉大数据的来源;掌握大数据处理相关知识;精通PyCharm的安装步骤与掌握PyCharm的使用方法。技能目标具备掌握大数据采集方法的能力;具备大数据预处理方法的作用能力;具备安装和使用PyCharm的能力。技能目标具备精益求精、坚持不懈的精神;具备团队协作能力;具备灵活的思维和处理分析问题的能力;具备责任心。任务1-1:认识大数据采集与预处理壹认识数据来源任务技能信息管理系统、网络数据、机器和传感器数据、科学实验数据、交易数据、人为数据等认识大数据采集通过技术手段进行数据采集。目前,常用的大数据采集方式有网络爬虫采集、日志文件采集、商业工具采集认识大数据预处理修整不完整、含噪声、不一致(的数据,致使采集到的数据大多是不规则、非结构化的,易受到噪声(错误)、不完整、不一致等问题的影响。任务1-1:认识大数据采集与预处理壹1认识数据来源维克托和肯尼斯提出大数据为巨量资料,是一种海量的、飞速增长的、多样化的信息资产。(1)信息管理系统任务1-1:认识大数据采集与预处理壹(2)网络数据移动设备上的软件帮助储存和收集各种数据、互联网中通过社交系统、社交媒体以及搜索引擎等产生海量数据。非结构化数据01邮件文档图片音频视频半结构化数据02XMLJSON任务1-1:认识大数据采集与预处理壹(3)物联网数据

通过传感器技术获取外界的物理、化学和生物等数据信息,在互联网的基础上将网络延伸和扩展,使其在机器与机器之间进行信息交换和通信。0102任务1-1:认识大数据采集与预处理壹(4)科学实验数据实验数据仿真数据任务1-1:认识大数据采集与预处理壹(5)交易数据储蓄卡交易电子商务购物互联网交易数据电子商务购物数据任务1-1:认识大数据采集与预处理壹2认识大数据采集

早期,数据采集通过人工录入、调查问卷、电话随访等人工方式实现。目前,常用的大数据采集方式有网络爬虫采集、日志文件采集、商业工具采集。1.网络爬虫采集通过模拟客户端(浏览器)进行网络请求获取网页中文本数据、图片数据、音频文件、视频文件等数据。任务1-1:认识大数据采集与预处理壹网络爬虫类型通用网络爬虫

可以在整个互联网中进行目标资源的爬取,目标爬取数量巨大,对爬虫程序的性能有较高要求。增量式网络爬虫

用于对页面数据会不断变化的页面进行爬取操作,可以爬取网页中更新的新数据。聚焦网络爬虫可以选择性的在目标定位于主题相关的页面中爬取特定信息。深层页面爬虫深层网页是大部分内容不能通过静态链获取的,隐藏在搜索表单后,只有用户提交一些关键词才能获得的Web页面。例如,用户注册登录前不可见的页面即为深层页面。任务1-1:认识大数据采集与预处理壹网络爬虫用途利用网络爬虫获取网站页面,网站更新时获取页面信息。通过网络爬虫去其他平台获取信息实现业务数据的填充,之后即可根据业务需求对数据进行统计分析。电商平台中抓取同一商品的价格,之后即可提供给用户最实惠的商品价格任务1-1:认识大数据采集与预处理壹爬虫的基本流程任务1-1:认识大数据采集与预处理壹Urllib

Python内置的http网络爬虫库,包含了诸如URL内容抓取、HTTP请求发送、文件读取等多个操作URL的相关模块。Requests

基于Urllib使用Python语音编写的第三方http库,采用Apache2Licensed开源协议开发。Scrapy单击此处输入你的正文,文字是您思想的提炼,为了最终演示发布的良好效果BeautifulSoup

可以从HTML或XML文件中提取数据的Python库。能够通过转换器实现文档导航,查找,修改文档。Xpath

可以应用在包括数据挖掘、信息处理或存储历史数据等一系列的程序中。任务1-1:认识大数据采集与预处理壹2.日志数据采集(1)JS埋点技术采集日志JS埋点技术通过在页面中植入JS代码实现日志数据的收集,包括用户点了哪个按钮、页面之间的跳转次序、停留时长等。JS埋点可以在项目开发过程中手动植入。任务1-1:认识大数据采集与预处理壹(2)Flume组件采集日志可以将大批量的不同数据源的日志数据聚合、移动到数据中心(HDFS)进行存储。任务1-1:认识大数据采集与预处理壹3.商业工具采集

提供多场景数据计算和分析挖掘的科研基础环境,充分结合行业课题的相关数据,并利用大数据技术深入挖掘分析,满足行业大数据的科研工作需求。

日志管理工具,能够对日志数据进行集中采集和准时索引处理,以及简单易用的搜索方式。

简单直观的网页爬虫工具,无需编码即可从许多网站抓取数据。任务1-1:认识大数据采集与预处理壹3认识大数据预处理目前,常用的数据预处理方式有四种,分别是数据清洗、数据集成、数据变换、数据规约。(1)数据清洗通过删除有缺失数据的整行数据或删除有过多缺失数据的变量、以业务知识或经验推测并人工填写填充缺失、利用计算(均值、中位数、众数、随机数等)结果进行填充。任务1-1:认识大数据采集与预处理壹3认识大数据预处理目前,常用的数据预处理方式有四种,分别是数据清洗、数据集成、数据变换、数据规约。(1)数据清洗通过删除有缺失数据的整行数据或删除有过多缺失数据的变量、以业务知识或经验推测并人工填写填充缺失、利用计算(均值、中位数、众数、随机数等)结果进行填充。①缺失值清洗任务1-1:认识大数据采集与预处理壹②格式内容清洗问题处理方式书写格式问题内容修改,将格式统一出现不存在字符问题以半自动校验半人工方式来找出可能存在的问题的数据,并去除或修改数据中不符合格式的字符数据与字段不匹配问题不能直接删除,需要了解具体问题,再根据情况选择清洗方法任务1-1:认识大数据采集与预处理壹③逻辑错误清洗问题处理方式重复数据删除数值不合理选择删除数据或按缺失值对数据值进行处理数据冲突先判断字段与信息,之后在选择删除或修改该数据任务1-1:认识大数据采集与预处理壹④非需求数据清洗非需求数据就是在数据分析时没有可分析的意义或不会被分析的数据,在数据处理操作中,只需将其删除即可。但需要注意的是,不要把重要字段(如学生数据中的姓名、学号等)、不确定是否需要字段(如学生数据中的身高、体重等,在成绩分析时并不需要,但在学生健康情况分析中需要)等删除。任务1-1:认识大数据采集与预处理壹(2)数据集成将互联网中多种分布在不同位置的诸如各类XML文档、HTML文档、电子邮件、文本文件等结构化、半结构化信息等数据源中的数据综合存储在一个位置。任务1-1:认识大数据采集与预处理壹(3)数据规约方式描述维规约作用于多维数组,可以将不需要的整列数据删除实现数据维数的减少,提高计算效率数量规约通过在原数据中选择替代的、较少的数据来减少数据量数据压缩作用于存储空间,在不丢失有用信息的前提下,通过缩减数据量或重新组织结构减小数据的存储空间,高其传输、存储和处理效率任务1-1:认识大数据采集与预处理壹(4)数据转换方式描述光滑通过回归、分类等算法去掉数据中含有的噪声属性构造在指定结构的数据集中,添加新的属性,助提高准确率和对高维数据结构的理解规范化将数据集中的数据按一定比例进行缩放操作,使之落入特定的区间内,常用的数据规范化方法有零-均值标准化、归一化等任务1-1:认识大数据采集与预处理壹2.数据预处理工具Pig使用类似于SQL的面向数据流的语言PigLatin,可以在Hadoop中执行所有的数据处理操作PandasPython的一个数据处理模块,集成了大量的库和多个标准数据模型,主要用于实现数据的处理与分析ELKELK主要用于收集集群日志,从而对日志进行有效的处理,主要由ElasticSearch、Logstash和Kiabana三个开源工具组成。任务1-2:搭建数据采集与预处理开发环境贰1认识PyCharm编码协助;项目代码导航;代码分析;Python重构;支持Django;集成版本控制;图形页面调试器;集成的单元测试。优势任务1-2:搭建数据采集与预处理开发环境贰2安装PyCharm进入PyCharm的官网Step1下载安装包Step2打开安装包Step3激活软件Step6初始化设置Step5选择安装位置Step4任务1-2:搭建数据采集与预处理开发环境贰3使用PyCharm任务1-2:搭建数据采集与预处理开发环境贰快捷键描述Ctrl+/行注释/取消行注释Ctrl+Alt+L根据模板格式对代码格式化Ctrl+Alt+SPyCharm设置Ctrl+D复制当前行或者所选代码块Ctrl+Y删除光标所在位置行Ctrl+F当前文件内快速查找代码Ctrl+Shift+F指定文件内寻找路径Ctrl+R当前文件内代码替代Ctrl+Shift+R指定文件内代码批量替代Shift+F10运行Alt+Shift+F10运行指定文件Shift+F9调试程序Shift+F6重命名F11切换标记F5拷贝F6移动创建项目Step1在项目中创建py文件Step2编辑Pyhon代码Step3运行代码Step4配置Pycharm完成PyCharm中Python环境的配置并进行项目的创建。任务1-2:搭建数据采集与预处理开发环境贰与您共同成长项目二

动态网页数据采集目录Content1使用Requests库完成“浪潮云说”网页数据采集2使用Urllib模块完成“新闻动态”网页数据采集项目导言零

在实际的开发中,所需数据是各种各样的,虽然在网络上有许多开源的数据集,但开源的数据集不一定符合我们的项目需求,因此项目需要的数据集需要主动获取。数据采集是数据分析必不可少的一环,这个时候学会数据采集的方法就显得尤为重要,本项目将使用Python相关http请求库完成网页数据的采集。学习目标零知识目标了解Urllib和Requests库相关概念熟悉Urllib和Requests库的方法掌握Urllib库中request模块使用精通动态网页数据采集的方法技能目标具备Urllib库相关模块的使用能力具备安装Requests库的能力具备使用Requests库完成网页数据采集的能力具备精通网页数据采集的能力素养目标具备善于发现和总结问题能力具备较强的学习能力和适应能力具备较强的沟通表达能力任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹request模块任务技能urlopen()、Request()、urlretrieve()error模块URLError、HTTPErrorparse模块urlparse()、urljoin()、quote()、unquote()任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹1request模块在Urllib库中,request是一个用于实现http请求模拟的模块,能够完成页面抓取、Cookie设置等工作。目前,request模块包含多个http请求方法。方法描述urlopen()页面获取Request()设置请求的相关参数urlretrieve()文件下载任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹(1)urlopen()urlopen()是request模块中不可或缺的一种方法,主要用于实现页面获取,通过指定url地址即可向页面发送请求,并以HTTPResponse类型的对象作为响应将页面内容返回。0102urlopen()方法包含参数参数描述url指定目标网站的URLdata指定表单数据,该参数默认为None,此时urllib使用get方法发送请求,当给参数赋值后,urllib使用post发送请求,并在该参数中携带表单信息timeout用来指定请求的等待时间,若超过指定时间还没获得响应,则抛出一个异常任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹

HTTPResponse对象方法方法描述read()获取数据readline()按行获取数据readlines()获取数据,并以行列表形式返回getcode()获取状态码geturl()获取url路径decode()数据解码getheaders()获取http请求头信息,当接收属性后,会返回头部信息中属性对应的值任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹(2)Request()在使用urlopen()方法对页面进行访问时,并不能对请求方式、请求头信息等请求参数进行设置,这时为了提高urlopen()方法的全面性,request模块提供了一个Request()方法,能够通过请求参数创建Request对象,并将该对象作为urlopen()方法的参数完成页面请求。参数描述url指定目标网站的URLdata访问页面时携带的数据headers请求头origin_req_host请求方的host名称或者IP地址unverifiable请求方的请求无法验证method请求方式设置Request()方法包含参数任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹headers参数包含属性属性描述User-Agent操作系统和浏览器的名称和版本accept浏览器端可以接受的媒体类型Accept-Encoding编码方法Accept-Language支持语言method参数包含属性GET获取POST提交HEAD获取头部信息PUT提交信息,原信息被覆盖DELETE提交删除请求任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹(3)urlretrieve()通过urlopen()方法,只能获取页面中的文本信息,当面对图片文件、音视频文件、文本文件等内容时,request模块提供了一个urlretrieve()方法,能够实现文件的下载操作。urlretrieve()方法包含参数参数描述url文件路径filename文件名称reporthook文件访问的超时时间,单位为秒data文件访问时携带的数据任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹2error模块在Urllib中,为了避免发送请求时出现访问不到服务器、访问被禁止等错误,Urllib提供了一个用于定义异常的error模块。目前,error模块包含了两个常用方法。方法描述URLError网络地址异常HTTPErrorhttp错误异常任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹(1)URLError在error模块中,URLError提供了多个URL地址相关的异常,如URL地址错误、网络错误等,并且在触发异常后,可通过“reason”属性查看引发异常的原因。URLError的语法格式:from

urllib

import

errortry:......except

error.URLErrorase:e.reason......任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹(2)HTTPErrorHTTPError与URLError基本相同,不同之处在于HTTPError除了“reason”属性外,还存在一些其他属性。HTTPError属性属性描述code状态码reason错误原因headers响应头任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹3parse模块在Urllib中,parse模块主要用于对指定的URL进行操作,如解析URL、合并URL等。parse模块常用方法方法描述urlparse()URL的解析urljoin()URL的拼接quote()编码unquote()解码任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹(1)urlparse()urlparse()方法用于将接收的URL路径解析成协议、域名、路径、参数、查询条件以及锚点等六个部分,并以元组的格式返回,在使用时urlparse()方法接收三个参数。参数描述urlURL地址scheme默认协议allow_fragments是否忽略锚点urlparse()方法参数任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹urlparse()的语法格式:fromurllibimportparseparse.urlparse(urlstring,scheme='',allow_fragments=True)urlparse()方法返回结果包含字段字段描述scheme协议netloc域名path路径params参数query查询条件fragment锚点任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹(2)urljoin()urljoin()方法用于URL路径的连接,在使用时会接收两个路径参数,之后会连接两个URL路径,连接时会使用第一个参数补齐第二个参数的缺失部分,当两个参数均为完整路径时,则以第二个为主。urljoin()的语法格式:fromurllibimportparseparse.urljoin(url1,url2)任务2-1:使用Urllib模块完成“新闻动态”网页数据采集壹(3)quote()、unquote()quote()和unquote()方法是一对功能相对的方法,其中,quote()方法用于对URL路径中包含的中文进行编码操作,而unquote()方法则用于对quote()方法编码后的内容执行解码操作。语法格式:fromurllibimportparseparse.quote(url)parse.unquote(url)2-1:任务实施壹抓取页面内容输入网站地址代码查看工具定位到新闻信息区域,分析代码结构创建NewsInformation.py文件读取Response对象中包含的页面内容通过error模块的URLError定义网络地址异常,将代码封装到getHTML函数中完成新闻动态页面数据采集任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰Requests简介及安装任务技能Requests是一个使用Python编写的http库Requests库主要有pip安装、wheel安装和源码安装等方式Requests基本使用get()、post()、head()、put()、patch()、delete()Requests高级使用会话对象、文件上传、超时设置、异常处理、证书认证、代理设置任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰1Requests简介及安装

在Python中,除了上述的Urllib库外,Requests库同样被用于数据的采集,Requests是一个使用Python编写的http库,基于Urllib建立,为解决Urllib存在的安全缺陷以及代码冗余等问题而被推出,方便快捷,可以大大减少工作量,完全满足开发的需要。任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰用wheel方式安装Requests库Step1输入/~gohlke/pythonlibs/进入Requests的wheel文件下载地址Step3在命令窗口输入“pipinstall+wheel文件路径”Step2单击指定的文件格式进行wheel文件的下载Step4进入Python交互式命令行,输入“importrequests”代码,没有出现错误说明Requests库安装成功任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰2Requests基本使用HTTP请求类型类型描述GET向服务端发送获取信息请求POST将数据发送到服务器以创建或更新资源HEAD向服务端请求HTTP头信息PUT向服务器端发送数据,从而更新信息PATCH对已知资源进行局部更新DELETE向服务端发送删除资源请求任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰Requests库请求方法方法描述get()获取HTML网页的主要方法post()获取HTML网页头信息的方法head()向HTML网页提交post请求的方法put()向HTML网页提交PUT请求的方法patch()向HTML网页提交局部修改请求delete()向HTML页面提交删除请求任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰(1)get()get()方法包含参数参数描述url页面的URL链接paramsURL额外参数,以字典或字节序列形式作为参数增加到URL中**kwargs控制访问的参数任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰**kwargs包含参数参数描述data字典、字节序列或文件对象,作为Request的内容jsonJSON格式的数据,作为Request的内容headers字典,HTTP定制头cookie字典或CooKiJar,作为Request中的cookieauth元祖,支持HTTP认证功能files字典类型,作为传输文件timeout超时时间,秒为单位proxies字典类型,设定访问代理服务器,可以增加登录认证allow_redirects重定向开关stream获取内容立即下载开关verity认证SSL证书开关cert本地SSL证书路径任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰Response对象包含属性属性描述status_code状态码text字符串形式页面内容content二进制形式页面内容encoding从HTTPheader中猜测的响应内容编码方式apparent_encoding从内容中分析出的响应内容编码方式cookies响应的cookieurlURL路径headers请求头信息任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰常用状态码状态码描述200请求成功301请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL400请求有语法错误,不能被服务器所理解401请求未经授权403服务器收到请求,但是拒绝提供服务404请求资源不存在500服务器发生不可预期的错误503服务器当前不能处理客户端的请求,一段时间后可能恢复正常任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰(2)post()post()方法包含参数参数描述url页面的URL链接data字典、字节序列或文件对象,作为Request的内容jsonJSON格式的数据,作为Request的内容**kwargs控制访问的参数任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰(3)head()语法格式:importrequestsrequests.head(url,**kwargs)任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰(4)put()语法格式:importrequestsrequests.put(url,data=None,**kwargs)任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰(5)patch()语法格式:importrequestsrequests.patch(url,data=None,**kwargs)任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰(6)delete()语法格式:importrequestsrequests.delete(url,**kwargs)任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰method包含参数值参数值描述GET获取HTML网页POST获取HTML网页头信息HEAD向HTML网页提交post请求PUT向HTML网页提交PUT请求PATCH向HTML网页提交局部修改请求DELETE向HTML页面提交删除请求任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰3Requests高级使用会话对象文件上传异常处理代理设置超时设置证书认证任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰(1)会话对象会话对象能够跨请求保持某些参数,也会在同一个Session实例发出的所有请求之间保持cookie,除此之外它还可以用来提升网络性能。语法格式:importrequestssession=requests.Session()session.get()任务2-2:使用Requests库完成“浪潮云说”网页数据采集贰(2)文件上传

在使用post()方法提交数据时,不仅可以提交文本数据,还可以通过files参数的设置提交文件数据,实现文件的上传操作。语法格式:importrequests#获取文件files={'fi

温馨提示

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

评论

0/150

提交评论