《数据采集与预处理》教学教案(全).docx

上传人:太** 文档编号:35969755 上传时间:2022-08-24 格式:DOCX 页数:69 大小:382.45KB
返回 下载 相关 举报
《数据采集与预处理》教学教案(全).docx_第1页
第1页 / 共69页
《数据采集与预处理》教学教案(全).docx_第2页
第2页 / 共69页
点击查看更多>>
资源描述

《《数据采集与预处理》教学教案(全).docx》由会员分享,可在线阅读,更多相关《《数据采集与预处理》教学教案(全).docx(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、数据采集与预处理教 案NO. 1教师姓名授课班级授课形式理实一体化授课时间年 月 日第周授课时数6授课章节名称任务1认识数据采集技术,熟悉数据采集平台教学目的(1)学习数据采集等相关知识内容,熟悉大数据的定义、大数据 的基本特征及数据采集的相关技术、工具和产品等。(2)熟悉数据采集的来源和方法。(3)完成Scrapy平台的搭建。(4)完成Apache Flume平台的搭建教材分析教学重点Scrapy平台的塔延Apache Flume平台的搭建教学难点Scrapy平台的搭建Apache Flume平台的搭建更新、 补充、删节内容课外作业积极动手实践,熟练完成相关任务的实施操作图2-2节点树示意图

2、nexrsibfgpreouss_b5gvhtml的子节点 的时,彼此互为P1腔山stChild元素:图2-3节点树的一局部及节点之间的关系3. 爬虫的基本原理(本质是获取网页、提取和保存信息的自动化程 序)(1)获取网页 )提取信,包 )保存数据 基本库的使用 )urllib库的使用 发送请求 读取响应内容 传递URL参数 传递中文参数 定制请求头 传递POST请求 下载远程数据到本地 设立代理IP地址 异常处理 Cookie的使用 )BeautifulSoup 创延 BeautifulSoup 对象 四大对象种类 遍历文档树(2G4.(1(2a.遍历宜接子节点b.遍历所有子孙节点c. 遍历

3、节点内容d.遍历多个内容e.遍历父节点f.遍历全部父节点g.遍历兄弟节点h.遍历全部兄弟节点i.遍历前后节点j.遍历所力前后节点)搜索文档树(a) name 参数传字符串&传正那么表达式传列表传 True怎传方法)(b) attrs 参数(c) recursive 参数(d) text 参数(e) limit 参数(f) *kwargs 参数CSS选择器a.通过标签名查找b.通过类名查找c.通过id名查找d.组合查找e.克接子标签查找f.属性查找)4、任务实施1 .确定并分析目标网页架构(1)进入 : 网页(2)单击“以数字开头”中的各数字,可发现网页 URL变化规律为 :/(3)单击数字“1

4、”,进入 :页面,在右犍单 击页面弹出的快捷菜单中,选择“检查”命令,进入检杳页面。(4)使用快捷键“Ctrl+Shift+C”,单击“以汉字/字母开头”下面的“ 1 路“超链接,以网页源码查询方式显示网页内容。(5)单击a标签中的href属性,进入详细信息贞面。2.编写代码(两种存储方式:文件存储方式和 MySQL关系数据库存储方 式)(1)构造一个URL,以便获取所有一级贞面的URL。httD:/bei_iin出 8684, cn/listlhttD:/bei iinw httD:/bei iinH. ht tD: , /bei iinw. 8684. cn/】ist4 httD:/bei

5、 httD:/bei iing, 8684, cn/1ist6 :bei iinu, 8684, cn/list7 :bei iinw, 8684, cn/list8 . Process finished with exit code 0(2)创立一个get_pagc_url方法,并在for循环中调用代码。 s:, x 05db550f s:,7bRi iine. 8684. cn,x bf864ala s: /bui 968a4331 s: 4)ei iing. 8684. cn. x b】e20d0f iinR. 8684. cn/x 0c88d7dl s: 、ei x 94d65922

6、httDS:/bei iir)R 8684. cn x 1758ec7d httDS; /bei iin 8684. cn x 7833ac5a s;/, bei x 832c590bProcess finished with exit code 0(3)在获得了详细页面的 URL后,即可开始进行详细页面解析。在详细信息页面右键单击所弹出的快捷菜单中,选择“检直”命令, 随后使用快捷键“Ctrl+Shift+C”选中要爬取的数据网络爬虫实践NO. 4教师姓名授课班级授课形式理实一体化授课时间年 月 日第周授课时数4授课章节名称任务2使用Selenium爬取淘宝网站信息教学目的(1)知道Sele

7、nium 基本库和PyQuery解析库的使用方法。(2)学会使用Selenium基本库和PyQuery解析库实现淘宝网站信息的 爬取。教材分析教学重点使用Selenium基本库和PyQuery解析库实现淘宝网站信息的爬取教学难点使用Selenium 基本库和PyQuery解析库实现淘宝网站信息的爬取更新、补充、删节内容课外作业积极动手实践,熟练完成相关任务的实施操作教学过程教学提示任分二、使用Selenium收率泄宝网站信急1.任务描述(1)借助学习论坛、网络视频等网络资源和各种图书资源,学习网络 爬虫相关技术,熟悉爬虫基本库Selenium的使用。(2)使用Selenium基本库获取沟宝网站

8、信息的HTML源代码。(3)使用PyQuery解析库实现沟宝网站信,电的获取。2、任务目标(1)知道Selenium基本库和PyQuery解析库的使用 方法。(2)学会使用Selenium 基本库和 PyQuery解析库实现沟宝网站信息的 爬取。3、知识准备1. Selenium作用:用来做自动化测试,支挣多种浏览器,在爬虫中主要用来解决 JavaScript渲染问题。使用Selenium来爬取信息:(1)声明浏览器对象。(2)访问页面并获取网页HTML。(3)查找元素。(4)元素交互操作,即在搜索框中传入关键词并进行自动搜索。(5)交互动作,即驱动浏览器进行动作,模拟拖动动作,将动作附加 到

9、动作使中并串行执行。(6)执行JavaScript(进度条下拉,其可以通过执行JavaScript来实现)。(7)获取元素信息。(8) Frame 操作。(9)等待。隧式考待显式等待(10)前进后退。(11) Cookies 的设置(12)选项卡管理,增加浏览器窗口。(13)异常处理。2. PyQuery作用:用于解析HTML网页(1) 初始化4种进行初始化的方法:from pyquery import PyQuery as pq from Ixml import etreedoc = pq(n) #1专人字符串doc = pq(etree.fromstring(HH) #传入 Ixmldoc

10、 = pq(url= :/google /) #传入 URLdoc = pq(filename=path_to_html_file) #传入文件(2) Py Query获取元素的方法。 hlml()和.lexl():用于获取相应的HTML块或文本内容。(selector):用于通过选择器来获取目标内容。eq(index):根据索引号获取指定元素(index从0开始)。find():查找嵌套元素filler。:根据class、id晞选指定元素。attr():获取、修改属性值。其他操作addClass(value):添加 class。hasClass(name):判断是否包含指定的class,返回

11、True或False。children():获取子元素。parents():获取父元素。next():获取下一个元素。nextAll():获取后面全部的元素块。notjelector1):获取所有不匹配该选择器的元崇。for i in doc.items(li):print i.text():遍历 doc 中的 li 元素。4、任务实施(1)进入沟宝网页面。(2)获取商品列表。1.导入相关的Selenium模块2.构建一个 webdriver对象,使用的浏览器为 Chrome 构建 WebDriverWait对象,它指定了一个等待的最长时间。(3)保存到 MongoDBo1 .导入PyMong

12、o模块。2.创立一个 MongoDB的连接对象,并指定数据库和集合的名称。3.创立save_to_mongo方法,调用insert。方法将数据插入 MongoDB。 (4)遍历每页。1.将实现页码的遍历。2.最后需要将browser关闭。(5)运行。正在爬以第1页(,iaage : */g-search!. 1 icdn. cob/m bo/up 1 oaded/i4/1tr/i3/13022581 /TB2. _5ckYZnWVjSZFKXXcC0VXa_! 70-saturn.solar. jpg_360x360 price, :,19OT.00,. * del : 2S8人忖款. ti。

13、:IS电助牙*【2年保修】Apple,覃累Ipd 9.7美4LAX中帔电ZOHir.sho/:冬1H location*:机州,)存储引WongoDB成功(* inace* * 1-search3. al icdn. cob 】” bao uploaded 14 13 1669409267 TBlCACiCLSTBuSj$spXXaDRVXa_! !0-ite_pic. jpscrapy stu*tproject beibuslew Scrapy project * beibus using tenplate directory c:usersmacappdatalocalprogranspy

14、thonpython36lib site-packagesscrapytenplatesproject, created in:C: Usersmac beibusYou can start your first spider with: cd beibus scrapy genspider exanple example, coo(2)切换到beibus目录,并使用genspider创立spiderC:Usersmaccd beibusC:Usersmacbeibusscrapy genspider beijus beijing. 8684. cnCreated spider * bei-b

15、us,using tenplate basic in module:beibus. spiders, bei.bus(3)使用PyChaim翻开beibus工程夕 beibus C:Usersmacbeibus7 b beibus7 E spiders -n*_.py|.bd_bus.pyA items.py修 middlewares.pyA pipelines.pyA e*tings.py疸 $crpy.cfg lllli External Ubraries(4)进入 settings,将 ROBOTSTXT_OBEY 的参数改为 False(5) 4各DEFAULT_REQUEST_HEA

16、DERS方法的注释去J电,并在其中添加 User-Agent 属性。(6)进入bei_bus.py文件,对start_urls进行修改(7)新建一个slart_requests()方法(此方法名固定),获得并构廷一级网页URLO(8)在parse_indcx()方法中,使用Xpath寻找详细信息页面的URL,并 对网址进行拼接,之后对二级网页发起请求,并返回回调函数parse_detail()。(9)在parse_detail()方法中对详细信息页面进行操作。(10)对 wang_list_tag字段和fanist_tag字段进行格式化。(11)进入ilems.py文件,修改其中的class以

17、格式化数据。(12)在bei_bus.py文件的parse_detail()方法的末尾添加如下语句,以格式 化数据。bus_item = BeibusItera()for field in bus item, fields:bus_itemfield = eval(field)yield bus_i tern(13) 在 MySQL 的sludb 数据库中仓J提一个stu businfo表教学过程教学提示一.知识准在1 .数据采集的概念数据的采集有基于物联网传感器的采条,也有基于网络信息的采集。 2.数据采集的来源根据 MapReduce产生数据的应用系统分类,大数据的采集主要有 4 种来源:

18、管理信息系统、Web信息系统、物理信息系统、科学实验系统。 3.数据采集的方法(1)数据采集的新方法 系统日志采集方法网络数据采集方法:对非结构化数据的采集其他数据采臬方法(2)网页数据采集的方法互联网网贞数据具有分布广等大数据的典型特点,需要有针对性地对 互联网网页数据进行采集、转换、加工和存储。互联网网页数据是大数据 领域的一个重要组成局部,为互联网和金融服务创新提供了丰富的数据基 础。网页数据采集的基本流程互联网网页数据采集就是获取互联网中相关网页内容的过程,并从中 抽取出用户所需要的属性内容。网络爬虫是一个 自 动提取网 页的程序,它为搜索引 擎从万维网上下载 网页,是搜索引擎的重要组

19、成局部。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与 主题无关的饯接,保存有用的饯接并将其放入等待抓取的URL队列。另外,所有被爬虫抓取的网页将会被系统存储起来,进行一定的分析、 过淀,并提立索引,以便之后的查询和检索;网页数据采某的工作过程数据采集的 目 的就是把 目 标网站上网页中的某块文字或者图片等资 源下载到指定位竞。这个过程需要做如下配立工作:下载网页配比,解析 网贞 配置, 修正结果配置,数据输出配置。整个数据采集过程的基本步哪如下。a.将需要抓取数据网站的URL (Site URL)信息写入URL队列。b.爬虫从URL队列中获取需要抓取数据网站的URL信息。C.获

20、取某个具体网站的网页内容。d.从网页内容中抽取出该网站正文页内容的链接地址。e.从数据库中读取已经抓取过内容的网页地址。f.过波URL。对当前的URL和已经抓取过的URL进行比拟。g.如果该网页地址没有被抓取过,那么将该地址写入数据库。如果该 地址已经被抓取过,那么放弃对这个地址的抓取操作。h. 获取该地址的网页内容,并抽取出所需属性的内容值。i.将抽取的网页内容写入数据库。Web信怠数据自动采集Web数据自动采集涉及 Web数据挖掘(Web Data Mining).信息检察 (Information Retrieval)信息提取(Information Extraction)搜索引擎mys

21、ql CREATE TABLE stu_businfo(- bus_name varcharTlOOO),- bus_type varchar(1OOO),- bus_tirae varchar(lOOO),- ticket varchar(lOOO),- gongsi varchar(lOOO), _ gengxin varchar(1000),- licheng varchar(1000),- wang_info varchar(1000),- wang_buff varchar(1000),- fan_info varchar(1000),- fan_buff varchar(1000)

22、- DEFAULT CHARSET=utf-8;(14)在settings.py文件末尾添加如下参数。DB_HOST = I oca I hostDB.USER = stuDB_PWD = stu123DB_CHARSET=UTF8(15)修改pipelines.py文件import pymysqlfrom beibus import settingscI ass MysqIPipeline(object):def _init_(self):self, host = settings. DB_HOSTself.user = settings. DB USERself, pwd = settin

23、gs. DB_PWDself.db = settings. DBseIf. charset = sett ing. DB. CHARSETse I f. connect ()def connect (self):self.conn = pymysqI. connect(host=seIf. host,user=self. user.password=self. pwd.db=self. db,charset=self. charset)self. cursor = self. conn, cursor ()(16)添加一个close_spider()方法,用于关闭MySQL数据库。(17)实现

24、 processjtem()方法。(18)在settings.py中将ITEM_PIPELINES方法的注释去掉,并将其中的内容改为 “beibus.pipelines.MysqlPipeline:300”。ITEM PIPELINES =(- beibus. pi pelines. MysqIPipeline* : 300启动糜虫工程:在PyCharm 软件在下角单击“Terminal”标签,进入命令行界面,在其中 执彳亍 “scrapy crawl bei_bus”命令。Microsoft Vindm【* 10. 0. l7l$4. 228 (e) 0018 Microsoft Corpo

25、ration.仰HI所而(9融C: U*rsMc*crai7*9Htwiinbu*scrairr crmrlnxrwwtwtry:want-info response. xpth( /(id-bM.lin,)/div(4/div/tront/tit O). extract.first* icpt:*W_info Nonetry:wi*_Hst_tag xptht () ). xtractOscept:vm-lttt.tai - Nonetry: fan.info rvpcw xpth(*ine-/div(6J/div/tronB/tMt(),), extract.first0icept:fan

26、.info Xww try:faivBtt.tAt -in*)/div(7) /div/dlv/a/txt O ). xtractO数据采集与预处理NO. 6教师姓名授课班级授课形式理实一体化授课时间年 月 日第周授课时数4授课章节名称任务1 Flume的安装和配置教学目的(1)熟悉Flume的相关基础知识。(2)学会Flume的安装和不同应用场景下的配置。教材分析教学重点Flume的安装和不同应用场景下的配置教学难点Flume的安装和不同应用场景下的配电更新、补充、删节内容课外作业积极动手实践,熟练完成相关任务的实施操作教学过程教学提示一.知识准备1. FlumeFlume是一个分布式、高可

27、能和鬲可用的海珏日志采集、聚合及传输 服务。2. Flume的工作原理Flume的数据流由事件(Event)贯穿始终。事件是Flume的基本数据 单位,它携带日志数据(字节数组形式)弁且携带有头信息,这些事件由 Agent外部的Source生成,当Source捕获事件后会进行特定的格式化,把 事件推入(单个或多个)Channelo可以把Channel看作一个线冲区,它将 保存事件直到 Sink处理完该事件。Sink负责拧久化日志或者把事件推向 另一个 Source。(1) Flume 事件事件作为Flume内部数据传输的最基本单元,是由一个转载数据的字节数 组(该数组从数据源接入点传入,并传输

28、给传输器,即 HDFS、HBase) 和一个可选头部构成的。(2) Flume AgentFlume内部有一个或者多个 Agent,然而,对于每一Agent来说,Agent 就是一个独立的守护进程(JVM),它从客户端接收数据,或者从其他的 Agent上接收数据,并迅速地将获取的数据传给下一个目的节点 Sink或 AgentoAgent 主要由 Source、Channel、Sink 3 个组件组成。(3) Flume的可靠性当Flume节点出现故障时,日志能嬖被传送到其他节点上而不会丧失。Flume提供了 3种级别的可靠性保障,从强到弱依次如下:end-to-endStore on fail

29、ureBest effort(4) Flume插件Interceptors (拦截器)Channels Selectors (管遒选择器)a.默认管也选择器:每一个管道传递的都是相同的Event。b.多路复用管道选择器:根据每一个Event的头部地址选择管道。ink:用于激活被选择的Sinks群中特定的Sink,实现负载均衡控制。3. Flume组件常用配置分析(1) SourceAvro SourceoAvro So.urce主要属性的说明如下:a. Channels:接收客户端数据源事件流的Channel。b. type:类型名称,这里应为Avro。c. bind:需要监听的主机名或IP地

30、址。d. port:监听的端口。e. Avro: Flume通过 Avro方式在两台机器之间进行数据传输,Flume 可以监听和收集指定端口的日志,使用 Avro的Source需要说明被监听的主机的IP地址和堵口号,这里将 Agent名称均设巨为aloExec SourceoExec Source可以通过指定的操作对 日 志进行读取,使用Exec时需要指定 shell命令。Spooling-directory Source0Spooling-directory Source主要属性的说明如下:a.Channeis:接收客户端数据源事件流的Channel。b.typc:类型名称,这里为spool

31、dir。c.spooldir:读取文件的路径,即指定的“目录 d PLETED:对处理完成的文件追加的后缀。Flume可以读取spooldir对应文件夹中的日志,使用时会指定一个文件夹 映射到spooldir, Flume可以读取该文件夹中的所有文件。Syslog Sourceo(2) ChannelFlume的Channel种类弁不多,最常用的是 memory channeU(3) SinkLogger SinkoAvro Sinko(3)File_roll Sinko二.Flume的安装1 .翻开已经安装好的Ubuntu系统(JDK需自行解压安装),执行“cd” 命令,进入保存Flume安

32、装包的大数据根目录(这里的大数据根目录为 /data/bigdata),并执行“Is”命令,查看Flume安装包2 .执行 “tar”命令,解压 Flume 安装包 apache-flume-13 .进入Flume根目录,查看Flume中的文件4 .bin目录中存放的是Flume的可执行文件,conf目录中存放的是 Flume的配置文件,lib目录中存放的是Flume的依赖JAR包。5 .为了方便操作路径引用,需要在/elc/profile中配受相关环境变量, 代码如下。#配置JDK环境变量export JAVA H0ME=/usr/local/jdk1.8export CLASSPATH=$

33、:CLASSPATH:JAVA_HOME/Iib/export PATH=$PATH:$JAVA_HOME/b i n#配置Hadoop环境变量export HAD00P_H0ME=/usr/1 oca I/Hadoopexport path=$PATH:$HADOOP HOME/bin:$HAD00P HOME/sbin#配置Flume环境变量export FLUME_HOME=/data/bigdata/apache-fIume-1.8. 0-binexport PATH=. :$PATH:$FLUME_HOME/bin6 .进入conf目 录,通过执行4cp命令复制conf目 录中的fl

34、ume-env.sh. template文件,创立的副本文件名称为flume-env.sh7 .编辑配置文件flume-env.sh,修改JAVA_HOME的值为 a/usr/Iocal/jdkl.8w8 .执行“flumc-ng version”命令,马金证Flume是否安装成功,如果进 入图3-12所示界面,表示Flume安装成功。Source code repository: Revision: 99fS91994468633fc6f87eic5fcS3ee214b6da4fCompiled by denes on Frt Sep 15 14:S8:88 CEST 2017Fron so

35、urce with checksum fbb44c8c8fb63a49be8a59e27316833d图3-12 Flume安装成功三,企业常用Flume配K(1)互联网公司采集日志时,往往需要将各个 Web服务器的日志汇 总到一台 日志分析服务器中,以使日志分析。可通过Flume监听指定自身 端口来采集其他设备客户端发送到指定蝇口的数据,即使用Flume将 slave 1节点的文件采集到 master的指定目录中。在master节点下进行如下操作。进入Flume的conf目录,创立 Avro.conf配立文件。编辑Avro.conf配置文件。通过执彳亍命令flume-ng agent -c

36、. -f /data/bigdata/apache-flume-1.8.0- bin/conf/avro.conf -n a 1 -DFlume.root.logger=INFO,consolew 启动 Flume Agent al,指定日志等级为INFO,并将日志指出到控制台。翻开一个新的控制台命令行窗口,在slavel节点下进行如下操作。在Flume目录中创立一个自定义名称的文件夹,并创立一个要发送的 测试文件(由主机端采集)。使用echo向文件中榆出内容的基本方法是使用IO 重定向指令“”, 默认情况下echo输出到标油输出中,使用指令时可重定向输出到文 件中。启动Flume Avro-

37、client,并指定主机的接收端口为4141,向主机master 发送日志信息数据,如图3-17所示。Flume-ng Avro-client -c . -H master -p 4141 -F图3-17 向主机 master发送日志信息数据查看 masler节点在命令行窗口中接收的数据。观察到 日志文件已经通过Flume发送到了 master节点。按快捷键 “Ctrl+C” 退出。以上还原了企业中使用Flume Avro进行数据传输的过程,通过 Avro-clicnt发送数据到接收端的指定端口,实现了日志的传递。在企业信 息采集中可以将分散在各个机器上的 日志汇总到 日志处理分析服务器中,

38、从而完成整体数据的采集。(2)为了自动采集每日产生的 日志,互联网公司一般采用日志策略: 每日自动生成一个日志文件。为了实现自动采集日志功能,Flume提供了 Spooling Directory Source方式来对日志存储目录进行监控,收集新生成的 文件,即使用Flume监控本地目录,如有新增文件就采集文件中的数据。在Flume目录中创现一个自定义名称的文件夹,在该文件夹中创立 一个被监听的文件夹spooU进入Flume的conf目录,创注spooLconf配置文件。编辑spool.conf配电文件。过执行命令 “flumc-ng agent -c . -f /data/bigdata/apachc-Flume-1.8.0- bin/conf/spooLconf -n a2 -DFlurne.root.logger=INFO,consolew 启动 Flume Agent a2,指定日志等级为INFO,并将日志内容输出到控制台。翻开一个新的命令行窗口,用来观察

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁