欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    Python网络爬虫项目实战教学教案46.docx

    • 资源ID:1072691       资源大小:99.81KB        全文页数:49页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Python网络爬虫项目实战教学教案46.docx

    课题名称项目一初识爬虫计划学时4学时内容分析现阶段,互联网已经成为人们搜寻信息的重要来源,人们习,据关键字查找自己感兴趣的网站,那么搜索引擎是如何找自实,搜索引擎使用了网络爬虫不停地从互联网抓取网站数据在本地,这才能为大众提供信息检索的功能。网络爬虫技术经历了相当长时间的发展,用途也越来越广泛都在使用爬虫之外,其它公司和个人也可以编写爬虫程序获深入地了解通用爬虫和聚焦爬虫,具体包括爬虫的实现原J网页的请求原理惯于从搜索引擎上根回这些网站的呢?其,并将网站镜像保存,除了各大搜索引擎取自己想要的数据。里和相关技术,了解教学目标及基木要求1、了解爬虫产生的背景2、知道什么是爬虫3、了解爬虫的用途4、熟悉不同维度下网络爬虫的几种类型5、掌握通用爬虫和聚焦爬虫的工作原理6、熟悉爬虫抓取网页的流程7、了解通用爬虫的网页分类,8、了解爬虫要遵守的协议,及智能抓取更新网页的文件9、熟悉防爬虫的一些应对策略10、 了解使用Python语言做爬虫的优势11、 掌握基于HTTP协议的请求原理教学重点1、知道什么是爬虫2、熟悉不同维度下网络爬虫的几种类型3、掌握通用爬虫和聚焦爬虫的工作原理4、熟悉爬虫抓取网页的流程5、掌握基于HTTP协议的请求原理6、掌握客户端HTTP请求格式7、掌握服务端HTTP响应格式教学难点1、掌握客户端HTTP请求格式2、掌握服务端HTTP响应格式教学方式教学采用教师课堂讲授为主,使用教学PPT讲解教学过程第一课时(爬虫产生背景,什么是爬虫,爬虫的用途,爬虫的分类)一、创设情境,导入爬虫新概念(I)教师通过提问学生问题,引出网络爬虫技术。教师提问学生问题,例如问题是:大家知道哪些搜索引擎?它们如何找到网站的呢?教师进行总结:搜索引擎使用了网络爬虫不停地从互联网抓取网站数据,并将网站镜像保存在本地,这才能为大众提供信息检索的功能。(2)什么是网络爬虫?网络爬虫,又称为网页蜘蛛、网络机器人,是一种按照一定的规则,自动请求万维网网站并提取网络数据的程序或脚本。(3)明确本节课的学习目标,让学生带着目标去听课。 要求学生知道什么是爬虫 要求学生了解爬虫的用途 要求学生熟悉爬虫的分类二、进行重点知识的讲解(1)教师根据课件,讲述爬虫产生的背景。无论是搜索引擎,还是个人或单位获取目标数据,都需要从公开网站上爬取大量数据,在此需求下,爬虫技术应运而生,并迅速发展成为一门成熟的技术。(2)教师通过举例,讲述网络爬虫具体能够做什么。例如,推销一些理财产品时,利用爬虫从网站中能找到一些目标客户的联系方式;再例如,利用网络爬虫过滤网页上的广告信息;例如,购买商品时利用爬虫统计畅销品牌和性价比等。(3)教师根据课件,总结使用网络爬虫的好处。从互联网中采集信息是一项重要的工作,如果单纯地靠人力进行信息采集,不仅低效繁琐,而且花费成本高。爬虫的出现在一定的程度上代替了手工访问网页,能够实现自动化采集互联网的数据,以更高地效率去利用互联网中的有效信息。(4)教师根据课件,讲解不同维度下爬虫的分类。按照使用场景,可将爬虫分为通用网络爬虫和聚焦网络爬虫;按照爬取形式,可分为累积式和增量式网络爬虫;按照爬取数据的存在方式,可分为表层爬虫和深层爬虫。三、归纳总结,布置作业/随堂练习(1)回顾上课前的学习目标,并对本节课的重要知识点进行总结。教师提问学生本节课需要掌握的知识点,包括什么是爬虫、爬虫的用途,以及爬虫的分类,并对学生的回答进行补充和总结。(2)教师安排学生课上完成章节课后习题,并针对一些难以理解的题目进行讲解。第二课时(通用爬虫工作原理,聚焦爬虫工作原理)一、创设情境,导入通用爬虫的工作原理(1)教师通过提问学生问题,引出通用爬虫。教师提问学生问题,例如问题是:按使用场景爬虫主要有哪儿种?什么是通用爬虫?教师根据学生的回答进行总结:通用网络爬虫是搜索引擎抓取系统的重要组成部分,主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。(2)教师根据课件,讲述通用爬虫的工作原理。通用爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。(3)明确学习目标要求学生理解通用爬虫的工作原理要求学生理解聚焦爬虫的工作原理二、进行重点知识的讲解(1)教师通过提问学生问题,引出通用爬虫的使用场景。教师提问学生问题,例如问题是:大家知道哪些搜索引擎呢?教师根据学生的回答进行总结:搜索引擎是通用爬虫的最重要应用领域,也是大家使用网络功能时的最大助手。(2)教师根据课件,讲述搜索引擎的工作流程。搜索引擎使用通用爬虫来抓取网页,其基本工作流程与其他爬虫类似。在爬取到网页后,将数据存入原始页面数据库,其中的页面数据与用户浏览器得到的HTML是完全一样的;搜索引擎将爬虫抓取回来的页面,进行各种步骤的预处理;提供检索服务,网站排名。(3)什么是聚焦爬虫?聚焦爬虫,又称主题网络爬虫,是指选择性地爬取那些与预先定义好的主题相关的页面的网络爬虫。(4)与通用爬虫相比,聚焦爬虫适合什么使用场景?和通用爬虫相比,聚焦爬虫只需要爬行与主题相关的页面,从而极大地节省了硬件和网络资源,保存的页面也由于数量少而更新快,还可以很好地满足一些特定人群对特定领域信息的需求。(5)教师根据课件,讲述聚焦爬虫的工作原理。与通用爬虫相比,聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接,并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。(6)通过提问学生问题的形式,巩固学生对知识点的理解和认识。三、归纳总结,布置课后作业(1)回顾上课前的学习目标,并且对本节课需要掌握的知识点进行总结。教师带领学生总结本节课的内容,包括通用爬虫和聚焦爬虫的工作原理。(2)布置随堂练习,检查学生掌握情况。给学生布置随堂练习,检测学生的掌握程度,并对学生出现的问题进行解决。第三课时(爬虫抓取网页的详细流程,通用爬虫中网页的分类,robots.txt文件,Sitemap.xml文件)一、回顾上节课讲解的知识,继续讲解本节课的知识(1)教师讲解上一课时的课后作业。(2)回顾上节课所学习的知识,由上一课时的知识点引出本课时内容。教师提问学生问题,例如问题是:通用爬虫和聚焦爬虫的原理是什么?然后引出本节的知识点:本节课将介绍爬虫的流程及一些与爬虫相关的网站文件。(3)明确学习目标要求学生熟悉网络爬虫抓取网页的流程要求学生了解通用爬虫的网页分类要求学生了解robots.txt和Sitemap.xml文件二、进行重点知识的讲解(I)教师根据课件,讲述爬虫抓取网页的详细流程。爬虫从待抓取URL队列中依次读取URL,并通过DNS解析URL,把链接地址转换为网站服务器所对应的IP地址,交给网页下载器下载到本地;然后,记录已下载和未下载的URL,将已下载的网页放到已抓取URL队列中,将未下载的URL放入到待抓取URL队列中;下载被放入待抓取URL队列中的URL对应的网页,如此重复形成循环,直到待抓取URL队列为空。(2)教师根据课件,讲述通用爬虫的网页分类。据动态抓取过程中的爬虫和互联网所有网页之间的关系,可以将互联网页面划分为5个部分:已下载网页集合、已过期网页集合、待下载网页集合、可知网页集合和不可知网页集合。(3)什么是robots.txt文件?网站通过一个符合Robots协议的robots.txt文件来告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取。(4)教师根据课件,讲述robois.lxt文件的语法规则。robols.txt文件有着一套通用的语法规则,它使用#号进行注释,既可以包含一条记录,又可以包含多条记录,并且使用空行分开。(5)教师通过举例的形式,带领学生一起分析某个网站的roboisixt文件,以加深学生的认识。例如,获取京东网站的robots.IXt文件。如果硬件条件允许的情况下,教师可以通过实践演示操作。(6)教师根据课件,讲述SiIem叩.xml文件的作用。(7)在Sitemap.xml文件中,列出了网站中的网址及每个网址的其它元数据,比如上次更新的时间、更改的频率及相对于网站上其它网址的重要程度等,以便于爬虫可以更加智能地抓取网站。三、归纳总结,布置课后作业(1)回顾课前学习目标,对本节课的内容进行总结。教师带领学生总结本节课要掌握的内容:通用爬虫工作原理、聚焦爬虫工作原理,以及爬虫抓取网页的流程。(2)布置随堂练习,检查学生学习状况。给学生布置随堂练习,根据学生的完成情况,了解学习的学习理解状况,根据学生反映的问题,进行解答。第四课时(浏览网页过程,HTTP请求原理)一、创设情境,引出浏览器浏览网页的过程(1)教师通过举例,讲述浏览器加载网页的过程。例如I,打开谷歌浏览器,在地址栏中输入百度的网址(2)教师根据课件中的流程图,讲述浏览网页的过程。浏览器通过DNS服务器查找域名对应的IP地址,然后向该IP地址对应的Web服务器发送请求,Web服务器响应请求,返回HTML页面,交由浏览器解析HTML内容,并显示出来。(3)明确学习目标要求学生熟悉浏览器显示网页的过程要求学生掌握客户端HTTP请求格式要求学生掌握服务端HTTP响应格式二、进行重点知识的讲解(1)什么是URL?URL(UniformResourceLocator,统一资源定位符)是互联网上标准资源的地址,互联网上每个文件(即资源)都有一个唯一的URL,它包含了文件的位置以及浏览器处理方式等信息。(2)教师根据课件,讲述URL的3个组成部分。URL地址由协议头、服务器地址、文件路径三部分组成。(3)教师根据课件,讲述计算机域名系统DNS的作用。域名服务器保存有该网络中所有主机的域名和对应IP地址,并具有将域名转换为IP地址的功能。(4)教师根据课件中的HTTP通信原理图,分析浏览器显示网页的过程。HTTP是一套计算机通过网络进行通信的规则,它由两部分组成:客户端请求消息和服务器端响应消息。(5)教师通过课件的示例,帮助大家认识请求消息的格式。根据HTTP协议的规定,客户端发送一个HTTP请求到服务器的请求消息,由请求行、请求头部、空行、以及请求数据这四个部分组成。思考题和习题教学后(6)教师通过课件的示例,帮助大家认识响应消息的格式。HTTP响应由四个部分组成,分别是:状态行、响应报头、空行、以及响应正文。三、归纳总结,布置作业/随堂练习(1)回顾上课前的学习目标,并对本节课需要掌握的内容进行总结。教师总结本节课需要掌握的知识点,包括分析浏览器显示完整网页的过程、客户端HTTP请求格式和服务端HTTP响应格式。(2)布置随堂练习,检查学生的掌握情况。给学生布置随堂练习,检测学生的掌握程度,并对学生出现的问题进行解决。课题名称项目二爬取网站表层页面计划学时6学时内容分析基于爬虫的实现原理,我们进入爬虫的第一个阶段:抓取网页数据,即下载包含目标数据的网页。抓取网页需要通过爬虫向服务器发送一个HTTP请求,然后接收服务器返回的响应内容中的整个网页源代码。Python要想完成这个过程,既可以使用内置的urllib库,也可以使用第三方库requests。使用这两个库,我们在抓取网页数据的时候,就只需要关心请求的URL格式,以及要传递什么参数,要设置什么样的请求头,而不需要关心它们的底层是怎样实现的。教学目标及基本要求12、 了解什么是Urnib库13、 会使用urllib库爬取网页14、 掌握如何转换URL编码,可以使用GET和POST两种方式实现数据传输15、 知道伪装浏览器的用途16、 掌握如何自定义OPener17、 了解服务器的超时18、 熟悉一些常见的网络异常19、 掌握requests库的使用教学重点8、会使用Urllib库爬取网页9、掌握如何转换URL编码,可以使用GET和PoST两种方式实现数据传输10>知道伪装浏览器的用途11、掌握requests库的使用教学难点3、掌握如何自定义OPener教学方式教学采用教师课堂讲授为主,使用教学PPT讲解教学过程第一课时(什么是UrIlib库,快速使用UrIlib爬取网页)一、创设情境,导入UrlIib库(4)教师通过爬虫的原理,引出抓取网页数据。基于前面介绍的爬虫的原理,我们需要根据一个初始的URL,发送网络请求到指定的服务器,去获取其对应的网络数据,这就是网络爬虫的第一个阶段:抓取网页数据。(5)什么是抓取网页数据?抓取网页需要通过爬虫向服务器发送一个HTTP请求,然后接收服务器返回的响应内容中的整个网页源代码。(6)教师通过课件,讲述PythOn提供的用于抓取网页数据的库。PythOn要想完成抓取网页数据的过程,既可以使用内置的UrHib库,也可以使用第三方库requestso(7)明确学习目标要求学生掌握UrlIib库的基本使用二、进行重点知识的讲解(7)什么是Urnib库?Urllib库是Python内置的HTTP请求库,它包含了4个模块:Urnib.request、urllib.error>UHIib.parse、urllib.robotparsero(8)教师根据课件,讲述使用UrlIib库快速爬取一个网页,并通过代码进行演示。(9)教师根据课件的多学一招,讲述Python2与Python3中UrlIib的不同之处。Python2中使用的是Urllib2库来下载网页,Python3出现后,之前Python2中的urllib2库被移到了Urnib.request模块中,之前urllib2中很多函数的路径也发生了变化,希望大家在使用的时候多加注意。(10)教师根据课件,讲述urlopen方法的使用,并通过代码进行演示。(三)教师根据课件,讲述HTTPReSPonSe对象的使用,并通过代码进行演示。使用urllib.request模块中的urlopen方法发送HTTP请求后,服务器返回的响应内容封装在一个HTTPResponse类型的对象中。(12) 教师根据课件,讲述构建ReqUeSt对象,并通过代码进行演示。当我们使用urlopen方法发送一个请求时,如果希望执行更为复杂的操作,比如增加HTTP报头,则必须创建一个Request对象来作为urlopen方法的参数。三、归纳总结,布置作业/随堂练习(3)回顾上课前的学习目标,并对本节课要掌握的内容进行总结。教师总结本节课需要掌握的知识点,包括urlopen方法的使用、使用HTTPResponse对象和构建Request对象。(4)布置随堂练习,检查学生的掌握情况。给学生布置随堂练习,检测学生的掌握程度,并对学生出现的问题进行解决。第二课时(URL编码转换,处理GET请求,处理PoST请求)一、回顾上节课的内容,继续讲解本课时的知识(1)教师对学生们的疑问进行统一答疑。(2)回顾总结上节课内容,继续介绍本课时的内容。上节课我们介绍了UHIib库的基本使用,接下来,本节课将继续深入地探讨Urnib库,学习如何使用urllib库发送GET或POST请求来传输数据。(3)明确学习目标 要求学生会转换URL编码 要求学生会处理GET请求和POST请求二、进行重点知识的讲解(1)教师通过举例,讲述浏览器如何通过URL传递数据。例如,教师打开百度首页,在搜索框中输入新闻两个字,可以看到浏览器显示了带有搜索结果的网页。此时,再次查看这个网页的URL,发现这个网页的URL发生了变化,多了一些查询参数,这些就是要传递的数据。(2)为什么要转换URL编码?当我们传递的URL包含中文或者其它特殊字符(例如,空格或/等)时,需要使用Urllib.parse库中的UrIenCode方法将URL进行编码。(3)教师通过4.3.1的示例,讲述如何将URL进行编码转换,并通过示例代码进行演示。(4)教师通过举例,讲述GET请求的特点。例如,使用Fiddler抓包工具捕获搜索新闻的网页后进行查看,发现这个请求是GET请求。GET请求可以直接使用URL访问,在URL中已经包含了所有的参数。(5)教师通过432的示例,讲述如何使用UrHib库处理GET请求,并通过实践进行演示。(6)教师通过举例,讲述PoST请求的特点。例如,使用Fiddler抓包工具捕获有道翻译的网页后进行查看,发现这个请求是POST请求。POST请求的参数都放到数据体中,只能通过抓包工具进行查看。(7)教师通过4.3.3的示例,讲述如何使用urllib库处理POST请求,并通过实践进行演示。三、归纳总结,布置作业(1)回顾学习目标,对本节课的内容进行总结。教师带领学生总结本节课需要掌握的内容,包括URL编码转换、处理GET请求和POST请求。(3)布置随堂练习,检查学生掌握情况。给学生布置随堂练习,检测学生的掌握程度,并对学生出现的问题进行解决。第三课时(添加特定HeaderS一请求伪装,代理服务器)一、回顾上节课内容,继续讲解本节课的内容(1)教师对学生们的疑问进行统一答疑。(2)回顾总结上节课内容,继续介绍请求伪装的知识。在上一节课中,我们使用Urllib库实现了数据传递,接下来继续介绍一些该库的其它使用技巧,包括添加请求头和设置代理服务器。(3)明确学习目标 要求学生会添加特定的请求头 要求学生会设置代理服务器二、进行重点知识的讲解(1)什么是请求伪装?对于一些需要登录的网站,如果不是从浏览器发出的请求,则得不到任何响应。因此,我们需要将爬虫程序发出的请求伪装成浏览器发出的请求。(2)教师根据4.4的示例,讲述如何自定义请求报头,并通过代码进行演zso添加特定HeaderS的方式很简单,只需要调用ReqUeSt.add_header()即可。如果想查看己有的Headers,可以通过调用ReqUeSt.get_header()查看。(3)什么是代理服务器?提供代理服务的电脑系统或其它类型的网络终端称为代理服务器,大多被用来连接互联网和局域网。(4)教师根据课件,讲述如何自定义OPener,并通过代码进行演示。opener是urllib.request.OpenerDirector类的对象,我们之前一直都在使用的Urlopen,就是模块帮我们构建好的一个OPener,但是它不支持代理、COokie等其他的HTTP/HTTPS高级功能。所以如果要想设置代理,不能使用自带的urlopen,而是要自定义openero(5)教师根据课件,讲述怎样设置代理服务器,并通过代码进行演示。免费开放代理的获取基本没有成本,我们可以在一些代理网站上收集这些免费代理,测试后如果可以用,就把它收集起来用在爬虫上面。三、归纳总结,布置作业(1)回顾学习目标,对本节课需要掌握的内容进行总结教师带领学生总结本节课需要掌握的知识点,包括请求伪装和代理服务器。(2)布置随堂练习,检查学生掌握情况。给学生布置随堂练习,检测学生的掌握程度,并对学生出现的问题进行解决。第四课时(超时设置,常见的网络异常,什么是requests库,requests库初体验)一、回顾上节课内容,继续讲解本节课的内容(I)教师讲解上节课有难度的作业,并对学生的疑问进行统一答疑。(2)回顾上节课的内容,继续介绍本节课的知识。在上节课中,我们知道了伪装请求和代理服务器,其中伪装请求是应对反爬虫最常用的一种策略。接下来,本节课将为大家介绍一些Urnib库的其它知识,包括超时设置、网络异常,并带领大家简单地认识一下requests库。(3)明确学习目标 要求学生会设置超时异常 要求学生了解一些常见的网络异常 要求学生能体会requests库的便捷之处二、进行重点知识的讲解(1)教师通过举例,讲述为什么要设置超时。例如,我们要爬取IooO个网站,如果其中有100个网站需要等待30s才能返回数据,那如果要返回所有的数据,至少需要等待3000秒,如此长时间的等待显然是不可行的。(2)如何设置超时时间?我们可以为HTTP请求设置超时时间,一旦超过这个时间,服务器还没有返回响应内容,那么就会抛出一个超时异常,这个异常需要使用try语句来捕获。(3)教师通过4.6节的示例,讲述如何给请求设置超时时间。(4)常见的网络异常有哪些?URLError和HTTPError。(5)教师根据课件,讲述URLEnor异常的产生和捕获。(6)教师根据课件,讲述HttPEnor异常的产生和捕获。(7)什么是requests?requests是基于Python开发的HTTP库,与UrHib标准库相比,它不仅使用方便,而且能节约大量的工作。(8)教师根据课件,讲述requests库中常用的几个类。requests.Request表示请求对象,用于准备一个请求发送到服务器;requests.Response表示响应对象,其中包含服务器对HTTP请求的响应;requests.Session表示请求会话,提供COokie持久性、连接池和配置。(9)教师根据课件,讲述分别使用UHlib和requests抓取百度网站中“传智播客”关键字的搜索结果网页,并通过示例代码进行演示。(IO)教师根据课件,总结与urllib相比requests的便捷之处。三、归纳总结,布置作业(1)回顾学习目标,并对本节课需要掌握的内容进行总结。教师带领学生总结本节课需要掌握的内容,包括超时设置、常见网络异常,以及什么是requests库。(2)布置随堂练习,检查学生的掌握情况。给学生布置随堂练习,检测学生的掌握程度,并对学生出现的问题进行解决。第五课时(发送请求,返回响应,案例)一、回顾上节课内容,继续讲解本节课的内容(1)教师讲解上节课有难度的作业,并对学生的疑问进行统一答疑。(2)回顾上节课的内容,继续介绍本节课的知识。上节课中,我们介绍了设置超时异常和常见的网络异常,并对这些网络异常产生的原因及处理进行了讲解。此外,我们初步体验了使用requests库抓取网页,更加简单。接下来,本节课将深入地介绍一些requests库的知识,使用Urnib库爬取百度贴吧。(3)明确学习目标要求学生掌握requests的基本使用要求学生会使用urllib和requests抓取网页二、进行重点知识的讲解(1)教师根据课件,讲述requests库提供的发送请求的函数。教师可以从这些函数中随机选择两个,通过示例代码进行演示。(2)教师根据课件,讲述requests库提供的响应请求的Response类。教师可以从这些函数中随机选择两个,通过示例代码进行演示。(3)教师通过4.9的案例,讲述如何使用UrWb库爬取百度贴吧。(4)给学生布置随堂练习,检测学生的掌握程度,并对学生出现的问题进行解决。三、归纳总结,布置作业(1)回顾本节课的知识点,要求学生掌握requests库的基本使用。第六课时(上机练习)上机练习主要针对本章中需要重点掌握的知识点,以及在程序中容易出错的内容进行练习,通过上机练习可以考察同学对知识点的掌握情况,对代码的熟练程度。上机一:(考察知识点为使用urllib库发送GET请求)形式:单独完成题目:请按照以下要求完成。要求如下:(1)使用UrIIib库发送GET请求(2)把传递的数据进行URL编码。(3)使用print函数将最终爬到的数据打印出来。上机二:(考察知识点为使用urllib库发送post请求)形式:单独完成题目:请按照以下要求完成。要求如下:(1)使用UFllib库发送POST请求(2)把传递的数据进行URL编码。(3)使用Prinl函数将最终爬到的数据打印出来。思考题和习题教学后记课题名称项目3网页内容解析计划学时8学时内容分析通过上一章的学习,我们可以将整个网页的内容全部爬取下来。不过,这些数据的信息量非常庞大,不仅整体给人非常混乱的感觉,而且大部分数据是我们并不关心的。针对这种情况,我们需要对爬取的数据进行过滤筛选,去掉没用的数据,留下有价值的数据。要想过滤网页的数据,我们先要对服务器返回的数据形式做一些了解,这些数据一般可分为非结构化和结构化数据两种。对于不同类型的数据,需要采用不同的方案进行处理。教学目标及基本要求20、 了解服务器返回的数据格式21、 会通过浏览器查看网页的结构22、 熟悉解析数据的几种技术23、 掌握正则表达式的使用,会使用re模块解析网页数据24、 掌握XPath语法的使用,会使用IXmI库解析网页数据25、 掌握BeaUtifUlSOUP的使用,会使用bs4库解析网页数据26、 掌握JSONPath语法的使用,会使用json模块解析网页数据教学重点1、掌握正则表达式的使用,会使用re模块解析网页数据2、掌握XPath语法的使用,会使用IXml库解析网页数据3、掌握BeaUtifUISOUP的使用,会使用bs4库解析网页数据4、掌握JSoNPath语法的使用,会使用json模块解析网页数据教学难点1、掌握XPath语法的使用,会使用IXml库解析网页数据2、掌握BeaUtifUlSOUP的使用,会使用bs4库解析网页数据教学方式教学采用教师课堂讲授为主,使用教学PPT讲解教学过程第一课时(了解网页数据和结构,数据解析技术,正则表达式)一、创设情境,导入数据解析的概念(8)教师通过提出需求,引出解析网页数据。前面章节中,我们通过爬虫抓取的是整个网页的源码。不过,这些数据的信息量非常庞大,不仅整体给人非常混乱的感觉,而且大部分数据是我们并不关心的。因此,我们需要对抓取的数据进行过滤筛选(解析),去掉没用的数据,留下有价值的数据。(9)服务器返回给客户端的数据有哪些格式?对于服务器端来说,它返回给客户端的数据格式可分为非结构化和结构化两种。(10)明确学习目标 要求学生了解网页数据的格式和结构 要求学生熟悉数据解析的几种技术 要求学生掌握正则表达式的使用二、进行重点知识的讲解(13) 什么是非结构化数据?非结构化数据是指数据结构不规则或不完整,没有预定义的数据模型,不方便使用数据库二维逻辑来表现的数据,包括所有格式的办公文档、文本、图像等。(14) 什么是结构化数据?结构化数据就是能够用数据或统一的结构加以表示,具有模式的数据,包括HTML、XML和JSON等。(15) 教师根据课件,讲述如何使用谷歌浏览器查看网页结构。例如,教师在百度首页的某个标题上右击打开检查窗口,可以看到该元素周围的整个结构。(16) 教师根据课件,讲述用于解析数据的技术,以及基于这些技术的模块和库。re模块支持正则表达式语法的使用,Ixml库支持XPath语法的使用,json模块支持JSONPath语法的使用。此外,BeautifulSoup本身就是一个Python库,官方推荐使用beautifulsoup4进行开发。(17) 教师根据课件,区分用于解析网页的这几种技术有哪些不同。Ixml库是用C语言编写的,beautifulsou4库是用Python编写的,所以性能会差一些。但是,beautifulsoup4的API非常人性化,用起来比较简单,而Ixml使用的XPath语法写起来比较麻烦,所以开发效率不如beautifulsoup40(18) 什么是正则表达式?正则表达式,又称规则表达式,它是一个用于处理字符串的强大工具,通常被用来检索和替换那些符合规则的文本。(19) 教师根据课件,讲述使用re模块的一般步骤。(20) 教师根据5.3的示例,讲述使用正则表达式匹配中文。三、归纳总结,布置作业/随堂练习(5)回顾上课前的学习目标,并对本节课的内容进行总结。教师总结本节课需要掌握的知识点,包括数据解析的几种技术、正则表达式。(6)布置随堂练习,检查学生掌握情况。给学生布置随堂练习,检测学生的掌握程度,并对学生出现的问题进行解决。第二课时(XPath与IXml解析库(部分)一、回顾上节课的内容,继续讲解本课时的知识(4)教师对学生们的疑问进行统一答疑。(5)回顾总结上节课内容,继续介绍本课时的内容。本节课我们介绍了正则表达式的使用,它更加适用于搜索像文本这样的非结构化数据。接下来,本节课继续来介绍另外一种解析结构化数据的一种技术一XPath,以及IXml库的基本使用。(6)教师根据课件中形象地比喻,区分正则表达式和XPath。例如,我们把提取网页数据比作找建筑。如果使用正则表达式进行查找,则它会告诉你这个建筑本身有哪些特征,以及它的左边是什么,右边是什么;如果使用XPath进行查找,则它会直接告诉你这个建筑位于“中国北京昌平区建材城西路金燕龙办公楼一层”。(7)明确学习目标要求学生掌握XPaIh的语法要求学生掌握IXml库的基本使用二、进行重点知识的讲解(8)什么是XPath?XPath(XMLPathLangUage的简写)即为XML路径语言,用于确定XML树结构中某一部分的位置。XPath技术基于XML的树结构,能够在树结构中遍历节点(元素、属性等)。(9)教师根据课件,讲述XPath的路径表达式。XPath使用路径表达式选取XML文档中的节点或者节点集,这些路径表达式与常规的电脑文件系统中看到的路径非常相似,代表着从一个节点到另一个或者一组节点的顺序,并以“/”字符进行分隔。(10) 教师根据课件,讲述如何在Chrome上安装XPathHelper插件。若硬件条件允许,教师可以通过实践演示操作。(11) 教师根据课件,讲述XPath表达式的语法,教师可以通过一个网页的源码,逐一使用这些表达式选取节点,以直观的效果来演示这些表达式的使用。三、归纳总结,布置作业(2)回顾学习目标,对本节课的内容进行总结。教师带领学生总结本节课需要掌握的知识点,包括XPath语法和XPath开发工具。(4)布置随堂练习,检查学生掌握情况。给学生布置随堂练习,检测学生的掌握程度,并对学生出现的问题进行解决。第三课时(什么是Ixml库,Ixml库的基本使用)一、回顾上节课内容,继续讲解本课时的知识(4)教师对学生们的疑问进行统一答疑。(5)回顾上节课的内容,继续讲解本课时的知识点。在上节课中,我们学习了XPath的语法,另外介绍了一个测试XPath表达式的插件。为了能够在Python中使用XPath表达式,用于查找节点,PythOn提供了一个Ixml库。(6)明确学习目标要求学生掌握IXml库的基本使用二、进行重点知识的讲解(6)什么是IXml库?Ixml是以Python语言编写的库,主要用于解析和提取HTML或者XML格式的数据,它不仅功能非常丰富,而且便于使用,可以利用XPath语法快速地定位特定的元素或节点。(7)教师根据课件,讲述IXmI库提供一些的常用类。Element类,可以理解为XML的节点;EIementTree类,可以理解为一个完整的XML文档树;EIementPath类,可以理解为XPath,用于搜索和定位节点。(8)教师根据课件,讲述Element类的属性和方法,并通过示例代码进行演示。Elemem类是XML处理的核心类,可以直观地理解为XML的节点,大部分XML节点的处理都是围绕着该类进行的。(9)教师根据课件,讲述用于从字符串或文件中解析XML文档的一些函数,并通过示例代码进行演示。其中,XMLo函数的行为类似于fromstring()函数,通常用于将XML字面量直接写入到源代码中,HTML()函数可以自动补全缺少的html和body标签。(12) 教师根据课件,讲述ElememTree类提供的一些常见方法,并通过示例代码进行演示。ElementTree类中附带了一个类似于XPath路径语言的EIementPath类。在ElementTree类或Elements类的API文档中,提供了三个常用的方法,可以满足大部分搜索和查询需求,并且这些方法的参数都是XPath语句,(13) 教师根据课件,讲述Ixml库的基本使用,并通过示例代码进行演示。三、归纳总结,布置作业(2)回顾学习目标,教师带领学生总结IXml库的使用。(3)布置随堂练习,检查学生掌握情况。给学生布置随堂练习,检测学生的掌握程度,并对学生出现的问题进行解决。第四课时(BeautifulSoup)一、通过提出需求,引出本课时讲解的BeaUtifUlSoup(1)教师对学生们的疑问进行统一答疑。(2)教师通过提出需求,引出BeaUtifUISo叩库。实际工作中,如果要使用Ixml库解析网页数据,可能需要经常编写和测试XPath语句,明显降低了开发的效率。为此,PythOn提供了一个BeaUtifUlSoup库,它使用起来更加简洁。(3)明确学习目标要求学生掌握bs4库的基本使用二、进行重点知识的讲解(1)什么是BeautifulSoup?截止到目前,BeaUtifUISOUP(3.2.1版本)已经停止开发,官网推荐现在的项目使用beautifulsoup4(BeautifulSoup4版本,简称为bs4)开发。bs4是一个HTML/XML的解析器,主要的功能是解析和提取HTML/XML数据。(2)教师根据课件,讲述bs4库的结构及使用流程。bs4库会将复杂的HTML文档换成树结构(HTMLDOM),这个结构中的每个节点都是一个Python对象,这些对象可以归纳为四种:bs4.element.Tag类(HTML中的标签)、bs4.element.NavigableString类(HTML中标签的文本)、bs4.BeautifulSoup类(HTMLDOM中的全部内容)和bs4.element.Comment类(标签内字符串的注释部分)。(3)教师根据课件,讲述如何构建BeanltifUISoUP类的对象。通过一个字符串或者类文件对象(存储在本地的文件句柄或Web网页句柄)可以创建BeatutifulSoup类的对象。(4)教师根据课件,讲述bs4支持使用的

    注意事项

    本文(Python网络爬虫项目实战教学教案46.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开