Python网络爬虫基础教程 教案第3章 抓取静态网页数据.docx

上传人:太** 文档编号:38955772 上传时间:2022-09-06 格式:DOCX 页数:8 大小:41.35KB
返回 下载 相关 举报
Python网络爬虫基础教程 教案第3章 抓取静态网页数据.docx_第1页
第1页 / 共8页
Python网络爬虫基础教程 教案第3章 抓取静态网页数据.docx_第2页
第2页 / 共8页
点击查看更多>>
资源描述

《Python网络爬虫基础教程 教案第3章 抓取静态网页数据.docx》由会员分享,可在线阅读,更多相关《Python网络爬虫基础教程 教案第3章 抓取静态网页数据.docx(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、样的教育,不一样的品质黑马程序员 itheima 传智教育旗下 高端IT教育品牌黑马程序员Python网络爬虫基础教程教学设计课程名称: 授课年级:授课学期:教师发名:课题名称第3章抓取静态网页数据4课时课时教学引入静态网页是早期网站中经常用到的页面,这类网页的特点是所有数据都直 接呈现在网页源代码中,对于网络爬虫来说,只要获取了静态网页的源代码, 就相当于抓取了静态网页的数据,操作比拟简单。本章将针对抓取静态网页数 据的相关内容进行详细地讲解。教学目标 使学生了解抓取静态网页的实现技术,能够说出每种实现技术的特点 使学生掌握Requests中基本请求的发送方式,能够向服务器发送GET请求 和

2、POST请求 使学生掌握Requests中响应内容的处理方式,能够使用多种形式获取响应 内容 使学生掌握Requests中请求头的定制方式,能够为GET请求和POST请求 定制请求头 使学生掌握Requests中代理服务器的设置方式,能够为请求设置代理服务 器 使学生掌握Requests中异常的处理方式,能够处理请求超时异常教学重点 发送GET请求 发送POST请求 处理响应 定制请求头 验证 Cookie 保持会话 SSL证书验证 代理服务器简介 设置代理服务器 检测代理IP的有效性 处理异常教学难点 处理响应 定制请求头验证 Cookie 保持会话教学方式课堂教学以PPT讲授为主,并结合多

3、媒体进行教学教 学 过 程第一课时(抓取静态网页的技术、发送GET请求、发送POST请求、处理响 应)一、创设情景,导入新课教师首先向学生提问,静态页面数据如何抓取,引出抓取静态网页的实现 技术;然后教师讲解网站对于不同数据,所使用的请求方式也不同,引出发送 GET请求和发送POST请求;最后教师向学生讲解,当请求发送成功后,网站 会将请求数据进行响应,引出处理响应。二、新课讲解知识点1抓取静态网页的技术教师通过PPT的方式讲解抓取静态网页的技术。(1) 了解什么是urllib。黑马程序员 itheima 传智教育旗下 高端IT教育品牌样的教育,不一样的品质黑马程序员 itheima 传智教育

4、旗下 高端IT教育品牌样的教育,不一样的品质了解什么是urllib3。(2) T解什么是 Requests。教师通过PPT的方式讲解什么是urllibourllib是Python最早内置的 客户端库,它涵盖了基础的网络请求功 能。urllib库中主要包含了 4个用于处理URL的模块,这些模块分别是 urllib.request、urllib.error urllib.parse urllib.robotparser,其中 urllib.request 模块封装了构造和发送网络请求的功能,urllib.error模块封装了发送请求时出 现的所有网络异常,urllib.parse模块封装了解析网页

5、数据的功能, urllib.robotparser模块封装了解析robots.txt文件的功能。教师通过PPT的方式讲解什么是urllib3ourllib3是一个强大的、用户友好的Python的 客户端库,它主要服务 于升级的 1.1标准,增加了一些urllib库中缺少的特性,包括线程平安、 连接池、客户端TLS/SSL验证、文件分部编码上传、压缩编码等。教师通过PPT的方式讲解什么是RequestsoRequests是基于urllib3编写的库,该库自称 for Humans,直译过来的意 思是专门为人类设计的 库,对开发人员更加友好。Requests相比urllib, Requests库会

6、在请求完网页数据后重复使用Socket套接字,并没有与服务器断 开连接,而urllib库会在请求完网页数据后会断开与服务器的连接。知识点2-发送GET请求教师通过PPT的方式讲解发送GET请求。(3) 掌握使用Requests库发送GET请求。(2)掌握使用get()函数发送不携带URL参数的请求。(3)掌握使用get()函数发送携带URL参数的请求。教师通过PPT的方式讲解使用Requests库发送GET请求。在Requests库中,GET请求通过调用get。函数发送,该函数会根据传入的 URL构建一个请求(每个请求都是Request类的对象),将该请求发送给服务 器,并接收服务器成功响应后

7、返回的响应信息。教师通过PPT的方式讲解使用get()函数发送不携带URL参数的请求。假设GET请求的URL中不携带参数,我们在调用get()函数发送GET请求时 只需要给url参数传入指定的URL即可。教师通过PPT的方式讲解使用get()函数发送携带URL参数的请求。假设GET请求的URL中携带参数,我们在调用get()函数时可以采用两种方 式发送GET请求,第1种方式为手动构建完整的URL;第2种方式是将参数 转换为字典,之后将该字典传入params参数。知识点3-发送POST请求教师通过PPT的方式讲解发送POST请求。在Requests中,POST请求可以通过调用post。函数发送,

8、post。函数会根 据传入的URL构建一个请求,将该请求发送给服务器,并接收服务器成功响应 后返回的响应信息。知识点4-处理响应教师通过PPT的方式讲解处理响应。当服务器返回的响应状态码为200时,说明本次 请求成功,此时可 以接收到由服务器返回的响应信息。在Requests库中,Response类的对象中封 装了服务器返回的响应信息,包括响应头和响应内容等。除了前面讲解的黑马程序员传智教育旗下 itheima I高端IT教育品牌一样的教育,不一样的品质status_code属性之外,Response类中还提供了一些其他属性。Response类的常 用属性如下表所示。属性说明status_co

9、de获取服务器返回的状态码text获取字符串形式的响应内容content获取二进制形式的响应内容url获取响应的最终URLrequest获取请求方式headers获取响应头encoding设置或获取响应内容的编码格式,与text属性搭配使用cookies获取服务器返回的Cookie三、归纳总结教师回顾本节课所讲的内容,并通过测试题的方式引导学生解答问题并给 予指导。四、布置作业教师通过高校教辅平台( :/tch. ityxb. com)布置本节课作业以及下 节课的预习作业。第二课时(定制请求头、验证Cookie、保持会话、SSL证书验证) 一、复习巩固教师通过上节课作业的完成情况,对学生吸收不

10、好的知识点进行再次巩固 讲解。一、教师通过直接导入的方式导入新课上节课主要讲解了抓取静态页面的技术、发送GET请求、发送POST请求、 处理响应,接下来,本节课将讲解定制请求头、验证Cookie保持会话、SSL 证书验证。三、新课讲解知识点1-定制请求头教师通过PPT的方式讲解定制请求头。(1)掌握如何查看请求头。(2)掌握如何设置请求头。教师通过PPT的方式讲解如何查看请求头。翻开Fiddler工具,在Chrome浏览器中加载知乎网登录页面,加载完成后 切换至Fiddler工具,在窗口左侧选中刚刚发送的 请求,并在窗口右侧查 看该请求对应的请求头信息,具体如下列图所示。黑马程序员 ithei

11、ma 黑马程序员 itheima 传智教育旗下 高端IT教育品牌样的教育,不一样的品质Sie Edit gules lools View HelpQReplay X Go Stream Decode Keep: All sessions Any Process 的 Find 瓜 Save 阮 Browse * Clear Cache /T Textwizard34567891112131415161718195 片ft fta国自层C语匡A拦ft.434567891112131415161718195 片ft fta国自层C语匡A拦ft.4Hos Tumd tc wwv/.douban.con

12、Tumd to I accounts.douban.con irpg3,doubanio I Tumd to I Tumei tq I fundn.dcxjbdn.con music.douban.coaTunneJ td I vww.douban.con ITumd to I quri.f.36O.cr ssl.google-analytKS.Tumd U ETumd to I Tumei tq I FiddterScript国 Loa|_J FHers| JuneineGet Startec 。StatisticsInspectors y AutoReaponder 国 Cotnpoaer

13、 E Wder Orchestra Beta百幕( | TextWew SyntaxMew | WebForms HexView | Auth Cookies Raw | JSON | XMLRequest Headers Raw) (Header DefinibonsGST / /1. 1CacheCache-Control: max-age-0CbentAccept: texttni,appicatx)n/xhtnil+xnil,appScatjon/xmi;qO.9,irndge/dvifrrnaQe/AebprrndQe/apngf*/*;qO.8,dppication/sigried

14、-cxchanQe;Accept-Encodng: gzp, deflate, br4 Anni i/int*,#yh:cafl.q| Use-Agent: Mozila/S.O (V/ndoAs HT 6.1; Wn64; x64) AppleWebKrt/S37.36 (KHTM., ike Gecko) Chrome/90.0.4430.212 Safyi/537.36 | CookiesE CookeS _gadsID-58611d6fad2ac3:T-1569201790:S-ALNI_MaMk2266MPrflaXc40Nw3YMf(XIA _utma=X 149280.20262

15、1375.1534930622.1621843583.1621846801.69上图中可以看出,字段User-Agent的值为Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36o教师通过PPT的方式讲解如何设置请求头。在requests中,设置请求头的方式非常简单,只需要在调用请求函数时为 headers参数传入定制好的请求头即可,一般是将请求头中的字段与值分别作为 字典的键与值,以字典的形式传给headers参数。知

16、识点2.验证Cookie教师通过PPT的方式讲解验证Cookieo在Requests库中,发送请求时可以通过两种方式携带Cookie, 一种方式直 接将包含Cookie信息的请求头传入请求函数的headers参数;另一种方式是将 Cookie信息传入请求函数的cookies参数。知识点3.保持会话教师通过PPT的方式讲解保持会话。在Requests中,Session类负责管理会话,通过Session类的对象不仅可以 实现在同一会话内发送屡次请求的功能,还可以在跨请求时保持Cookie信息。知识点4-SSL证书验证教师通过PPT的方式讲解SSL证书验证。当使用Requests调用请求函数发送请求

17、时,由于请求函数的verify参数的 默认值为True,所以每次请求网站时默认都会进行SSL证书的验证。不过,有 些网站可能没有购买SSL证书,或者SSL证书失效,当程序访问这类网站时会 因为找不到SSL证书而抛出SSLError异常。四、归纳总结教师回顾本节课所讲的内容,并通过测试题的方式引导学生解答问题并给 予指导。五、布置作业教师通过高校教辅平台( :tch.ityxb )布置本节课作业以及下节课 的预习作业。第三课时(代理服务器简介、设置代理服务器、检测代理IP的有效性、处理 异常)一、复习巩固教师通过上节课作业的完成情况,对学生吸收不好的知识点进行再次巩固 讲解。二、教师通过直接导入

18、的方式导入新课上节课主要讲解了定制请求头、验证Cookie、保持会话、SSL证书验证,接下来,本节课将讲解代理服务器简介、设置代理服务器、检测代理IP的有效 性、处理异常。四、新课讲解知识点1-代理服务器简介教师通过PPT的方式讲解代理服务器简介。(1)掌握什么代理服务器。(2)掌握代理服务器的分类。教师通过PPT的方式讲解什么是代理服务器。为防止网络爬虫被封IP,我们可以利用某种技术伪装IP地址,让服务器识 别不出由哪台设备发起的请求,这种技术就是代理服务器,代理服务器(Proxy Server)用于代理客户端用户去服务器端获得网络信息。教师通过PPT的方式讲解代理服务器的分类。(1)高度匿

19、名代理:会将数据包原封不动地转发给服务器,让服务器认为 当前访问的用户只是一个普通客户端,而不是代理服务器,并记录代理服务器 的IP地址。(2)普通匿名代理:会对数据包进行一些改动,这时服务器可能会发现当 前访问的用户是代理服务器,也可能会追查到客户端的真实IP地址。(3)透明代理:不仅会改动数据包,还会暴露当前访问客户端的真实IP 地址。这类代理除了通过缓存提升访问速度,通过内容过滤提高平安性之外, 并没有其他显著的作用,常见的场景就是内网中的硬件防火墙。知识点2.设置代理服务器教师通过PPT的方式讲解设置代理服务器。(1)掌握获取代理IP。(2)掌握设置代理IP。教师通过PPT的方式讲解获

20、取代理IPo(1)获取免费代理IP免费代理IP基本没有本钱,我们可以从免费代理网站上,比方快代理、全 网代理IP等,找一些免费代理IP,测试可用后便可以收集起来备用,但使用这 种方式获取的可用代理IP相对较少。(2)获取付费代理IP互联网上存在许多代理商,用户付费后便可以获得一些高质量的代理IPo(3) ADSL 拨号ADSL通过拨号的方式上网,需要输入ADSL账号和密码,每次拨号都会 更换一个新的IP地址,不过ADSL拨号操作起来比拟麻烦,每切换一次IP地 址就要重新拨号,重拨期间还会处于短暂断网的状态。教师通过PPT的方式讲解设置代理IPo在Requests中,设置代理IP的方式非常简单,

21、我们只需要在调用请求函数 时为proxies参数传入一个字典,该字典中包含了所需要的代理IP,其中字典 的键为代理类型( 或 s),字典的值为“代理类型:/IP地址:端口号”格 式的字符串。例如,定义一个包含两个代理IP的字典,代码如下。proxies = 1 1: 1 :/10.10.1.10:3128r t1 s1: , s:/10.10.1.10:10801,样的教育,不一样的品质 itheima 黑马程序员传智教育旗下 高端IT教育品牌黑马程序员 itheima 传智教育旗下 高端IT教育品牌样的教育,不一样的品质知识点3.检测代理IP的有效性教师通过PPT的方式讲解检测代理IP有效性

22、。互联网上有很多免费的代理IP,这些IP地址并不都是有效的,为此我们 需要对获取的免费IP地址进行检测,确定这个IP地址是否有效。检测代理IP 的过程比拟简单,我们需要先遍历提供的所有代理IP,分别将取出来的每个代 理IP依次设为代理,再通过该IP地址向网站发送请求,如果请求成功,那么说 明该IP地址是有效的;如果请求失败,那么说明该IP地址是无效的,需将该IP 地址进行剔除。知识点4.处理异常教师通过PPT的方式讲解处理异常。requests.exceptions模块中定义了很多异常类型,关于常见异常类型的说明 如下表所示。异常类型说明RequestException请求异常Connecti

23、onError连接错误 Error发生 错误URLRequired发出请求需要有效的URLTooManyRedirects请求超过配置的最大重定向数ConnectTimeout尝试连接到远程服务器时请求超时ReadTimeout服务器在规定的时间内没有发送任何数据Timeout请求超时四、归纳总结教师回顾本节课所讲的内容,并通过测试题的方式引导学生解答问题并给 予指导。五、布置作业教师通过高校教辅平台( :/tch.ityxb )布置本节课作业以及下节课 的预习作业。第四课时(上机练习)上机练习主要针对本章中需要重点掌握的知识点,以及在程序中容易出错 的内容进行练习,通过上机练习可以考察同学对知识点的掌握情况,对代码的 熟练程度。上机一:(考察知识点为:发送GET请求、发送POST请求、处理响应、 定制请求头)形式:单独完成题目:在Python环境中安装Requests库,并完成以下要求:(1)使用Requests库发送GET请求和POST请求;(2)实现请求头的定制;(3)掌握验证Cookie、保持会话和SSL证书的验证;(4)掌握如何设置代理IP;(5)完成实践工程:抓取黑马程序员论坛网的数据。教学后记黑马程序员 itheima 传智教育旗下 高端IT教育品牌样的教育,不一样的品质

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

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

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

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com