Python网络爬虫基础教程 教案 第4章 解析网页数据_第1页
Python网络爬虫基础教程 教案 第4章 解析网页数据_第2页
Python网络爬虫基础教程 教案 第4章 解析网页数据_第3页
Python网络爬虫基础教程 教案 第4章 解析网页数据_第4页
Python网络爬虫基础教程 教案 第4章 解析网页数据_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、样的教育,不一样的品质黑马程序员样的教育,不一样的品质 HYPERLINK :/ itheima itheima 传智教育旗下 高端IT教育品牌黑马程序员Python网络爬虫基础教程教学设计课程名称: 授课年级:授课学期:教师发名:JSONPath的表达式定位目标对象,并从目标对象中提取想要的数据。四、归纳总结教师回顾本节课所讲的内容,并通过测试题的方式引导学生解答问题并给 予指导。五、布置作业教师通过身校教辅平台( :/tch.ityxb )布置本节课作业以及卜力课 的预习作业。第五、六课时(上机练习)上机练习主要针对本章中需要重点掌握的知识点,以及在程序中容易出错 的内容进行练习,通过上机

2、练习可以考察同学对知识点的掌握情况,对代码的 熟练程度。上机一:(考察知识点为正那么表达式的语法、re模块的使用、XPath语法)形式:单独完成题目:根据以下要求练习re模块、XPath和Ixml的使用,要求如下:(1)练习Python中re模块的使用;(2)练习XPath语法的使用;(3)练习XPath Helper插件的使用;(4)练习Beautiful Soup匹配节点的使用。上机二:(考察知识点为JSONPath语法、jsonpath模块的使用、和完成 实践工程)形式:单独完成题目:根据以下要求练习Selenium的使用,要求如下:(1)掌握jsonpath模块的安装;(2)练习jso

3、npath模块的使用;(3)完成实践工程采集黑马程序员论坛网的帖子。教学后记黑马程序员 HYPERLINK :/ itheima itheima 传智教育旗下 高端IT教育品牌样的教育,不一样的品质课题名称第4章解析网页数据计戈U 课时4课时教学引入通过对第3章的学习,我们已经将整个静态网页的源代码全部抓取下来了, 并且源代码里面也包含了最终要提取的数据。这些数据分为非结构化数据和结 构化数据两种,由于这两种数据有着各自的特点,所以需要采用不同的技术方 案进行解析,提取与目标有关的数据。本章将围绕着解析网页数据的相关知识 进行详细地讲解。教学目标使学生了解解析网页的技术,能够说出正那么表达式、

4、Xpath、Beautiful Soup与JSONPath的特点使学生熟悉正那么表达式的语法,能够归纳元字符与预定义字符集的含义使学生掌握re模块的用法,能够灵活应用re模块解析网页数据使学生了解XPath的概念,能够说出XPath的路径表达式的作用使学生掌握XPath的语法,能够熟练编写XPath的路径表达式使学生掌握XPath的开发工具,能够独立安装与使用XPath Helper工具使学生掌握Ixml库的用法,能够灵活应用Ixml库解析网页数据使学生熟悉Beautiful Soup,能够归纳Beautiful Soup包含的类和基本用法使学生掌握BeautifulSoup类对象的创立方式,

5、能够使用BeautifulSoup类的构造方法创立BeautifulSoup类对象使学生掌握BeautifulSoup中选取节点的方式,能够使用查找方法和CSS选择器选取节点使学生熟悉JSONPath的语法,能够熟练地编写JSONPath的表达式使学生掌握jsonpath模块的用法,能够灵活运用jsonpath模块解析JSON 文档教学重点XPath语法XPath开发工具Ixml库简介仓II建Beautiful Soup类的对象通过查找方法选取节点通常CSS选择器选取节点教学难点XPath语法Ixml简介创立Beautiful Soup类的对象通过CSS选择器选取节点教学方式课堂教学以PPT讲

6、授为主,并结合多媒体进行教学教 学 过 程第一课时(解析网页数据的技术、正那么表达式的语法、re模块的使用)一、创设情景,导入新课在之前学习的爬虫程序只是将网页下载到本地,但爬虫程序的目的是提取 网页中的数据,为了能够提取网页中的数据,我们需要学习解析网页数据的技 术从而引出本节课程所学内容。二、新课讲解知识点1解析网页数据的技术教师通过PPT的方式讲解解析网页数据技术。(1) 了解什么是正那么表达式。黑马程序员 HYPERLINK :/ itheima itheima 传智教育旗下 高端IT教育品牌样的教育,不一样的品质了解什么是Xpath。了解什么是 Beautiful Soup。了解什么

7、是 JSONPath。教师通过PPT的方式讲解什么是正那么表达式。正那么表达式是一种文本模式,这种模式描述了匹配字符串的规那么,用于检 索字符串中是否有符合该模式的子串,或者将匹配到的子串进行替换。教师通过PPT的方式讲解什么是XpathoXPath是XML路径语言,用于从HTML或XML格式的数据中提取所需的 数据。XPath适合处理层次结构比拟明显的数据,它能够基于HTML或XML 的节点树确定目标节点所在的路径,顺着这个路径便可以找到节点对应的文本 或属性值。教师通过PPT的方式讲解什么是Beautiful SoupoBeautiful Soup是一个可以从HTML或XML文件中提取数据

8、的Python库, 它同样可以使用XPath语法提取数据,并且也在此基础上做了方便开发者的封 装,提供了更多项选择取节点的方式。教师通过PPT的方式讲解什么是JSONPath。JSONPath的作用类似XPath,它也是以表达式的方式解析数据的,但只能 解析JSON格式的数据。知识点2正那么表达式的语法教师通过PPT的方式讲解正那么表达式语法。(1)熟悉什么是元字符。熟悉什么是预定义字符集。教师通过PPT的方式讲解什么是元字符。在正那么表达式中,元字符是指具有特殊含义的专用字符,主要用于规定其 前导字符在给定字符串中出现的模式。常用的元字符如下表所示。元字符说明*匹配任何一个字符(除换行符外)

9、A匹配字符串的开头$匹配字符串的末尾1连接多个子表达式,匹配与任意子表达式模式相同的字符串字符组,匹配其中的出现的任意一个字符-连字符,匹配指定范围内的任意一个字符9 匹配其前导字符。次或1次*匹配其前导字符。次或屡次+匹配其前导字符1次或屡次n匹配其前导字符n次m,n匹配其前导字符mn次0分组,匹配子组教师通过PPT的方式讲解什么是预定义字符集。在正那么表达式中,除了前面讲解的元字符之外,还预定义了一些字符集, 这些字符集以更加简洁的方式描述了一些由普通字符和元字符组合的模式。常 用的预定义字符集如下表所示。黑马程序员 HYPERLINK :/ itheima itheima 传智教育旗下

10、高端IT教育品牌样的教育,不一样的品质预定义字符集说明w匹配下画线或任何字母(a-zA-Z)与数字(0-9)s匹配任意的空白字符,等价于空格trnfvd匹配任意数字,等价于0-9b匹配单词的边界W与w相反,匹配非字母或数字或下画线的字符S与s相反,匹配任意非空白字符的字符,等价于NsD与d相反,匹配任意非数字的字符,等价于NdB与b相反,匹配不出现在单词边界的元素A仅匹配字符串开头,等价于八Z仅匹配字符串结尾,等价于$知识点3re模块的使用教师通过PPT的方式讲解re模块使用。(1)掌握如何创立Pattern对象。(2)掌握使用re模块进行全文匹配。教师通过PPT的方式讲解如何创立Patter

11、n对象。为了节省每次编译正那么表达式的开销,保证正那么表达式可以重复使用,我 们可以使用compile。函数对正那么表达式进行预编译,从而生成一个代表正那么表 达式的Pattern对象。教师通过PPT的方式讲解使用re模块进行全文匹配。如果希望从全部文本中匹配所有符合正那么表达式的字符串,可以使用 Pattern对象的findall。与finditer。方法,其中findall。方法用于获取目标文本中 所有与正那么表达式匹配的内容,并将所有匹配的内容以列表的形式返回; finditer。方法同样可以获取目标文本中所有与正那么表达式匹配的内容,但该方 法会将匹配到的子串以迭代器的形式返回。三、归

12、纳总结教师回顾本节课所讲的内容,并通过测试题的方式引导学生解答问题并给 予指导。四、布置作业教师通过高校教辅平台( HYPERLINK :/tch :/tch. ityxb. com)布置本节课作业以及下 节课的预习作业。第二课时(XPath简介、XPath语法、XPath开发工具、Ixml库简介) 一、复习巩固教师通过上节课作业的完成情况,对学生吸收不好的知识点进行再次巩固 讲解。一、教师通过直接导入的方式导入新课上节课主要讲解了解析网页数据的技术、正那么表达式的语法、re模块的使 用接下来,本节课将讲解XPath简介、XPath语法、XPath开发工具和Ixml库 简介。三、新课讲解知识点

13、1- XPath简介样的教育,不一样的品质 HYPERLINK :/ itheima itheima 黑马程序员传智教育旗下 高端IT教育品牌教师通过PPT的方式讲解XPatho了解什么是XPath。了解XPath是如何搜索XML或HTML文档。教师通过PPT的方式讲解什么是XPathoXPath (全称Xml Path Language)即XML路径语言,是一种用于确定XML 文档中局部节点位置的语言,它起初只支持搜索XML文档,更新后也支持搜 索HTML文档。教师通过PPT的方式讲解XPath是如何搜索XML或HTML文档。XPath基于XML或HTML的节点树,沿着节点树的节点关系定位到

14、目标 节点所在的位置,并选取节点或节点集。为了形象地描述出搜索节点的路径, XPath提供了简洁明了的路径表达式,通过路径表达式可以快速地定位与选取 XML或HTML文档中的 个节点或者一组节点集。知识点2-XPath语法教师通过PPT的方式讲解XPath语法。掌握使用XPath选取节点。掌握使用XPath的谓语。掌握使用XPath选取未知节点。掌握使用XPath选取假设干路径。教师通过PPT的方式讲解XPath选取节点。选取节点是最基础的操作,节点所在的路径既可以是从根节点开始的,也 可以从任意位置开始的。选取节点的用法如下表所示。表达式说明节点名称选取此节点的所有子节点/从根节点选取直接子

15、节点,相当于绝对路径/从当前节点选取后代节点,相当于相对路径选取当前节点 选取当前节点的父节点选取属性节点教师通过PPT的方式讲解XPath的谓语。谓语是为路径表达式附加的条件,主要是对节点集进行筛选,选取出某个 特定的节点,或者包含了指定属性或基本值的节点。谓语会嵌入到中括号中, 并位于要补充说明的节点后面。谓语可以是整数、属性、函数,也可以是整数、属性、函数与运算符组合 的表达式。假设为整数(从1开始),那么这个数值将作为位置,用于从节点集中 选取与该位置对应的节点;假设为属性,那么会从节点集中选取包含该属性的节点; 假设为函数,那么会将该函数的返回值作为条件,从节点集中选取满足条件的节点

16、。 常用的XPath函数如下表所示。函数说明position()返回当前被处理的节点的位置last()返回当前节点集中的最后一个节点count()返回节点的总数目样的教育,不一样的品质 HYPERLINK :/ itheima itheima 黑马程序员传智教育旗下 高端IT教育品牌max(arg,arg,.)返回大于其它参数的参数min(arg,arg,.)返回小于其它参数的参数name()返回当前节点的名称current-date()返回当前的日期(带有时区)current-time()返回当前的时间(带有时区)contains(string 1 ,string2)假设string 1包含

17、string2,那么返回true,否那么返回false教师通过PPT的方式讲解XPath选取未知节点。XPath中提供了选取未知节点的通配符和函数,关于它们的说明如下表所黑马程序员黑马程序员 HYPERLINK :/ itheima itheima 通配符/函数说明*匹配任何元素节点*匹配任何属性节点node()匹配任何类型的节点黑马程序员 HYPERLINK :/ itheima itheima 传智教育旗下 高端IT教育品牌样的教育,不一样的品质教师通过黑马程序员 HYPERLINK :/ itheima itheima 传智教育旗下 高端IT教育品牌样的教育,不一样的品质在XPath中,

18、我们可以使用运算符连接多个路径表达式,以根据多个 路径选取对应的节点。知识点3-XPath开发工具教师通过PPT的方式讲解XPath开发工具。了解什么是XPath Helpero(2)掌握XPath Helper的安装。(3)掌握XPath Helper的使用。教师通过PPT的方式讲解什么是XPath HelperoXPath Helper是一款运行在Chrome浏览器的插件,它支持在网页上单击元 素生成路径表达式,也支持对照网页源代码手动编写路径表达式。在使用XPath Helper测试之前,我们需要先在Chrome浏览器上添加XPath Helper插件。下 面为大家分别讲解安装与使用XP

19、ath Helper插件。教师通过PPT的方式讲解XPath Helper的安装。关于Fiddler的XPath Helper的安装步骤请查看第4章4.3.3节或配套PPT 对应章节内容。教师通过PPT的方式讲解XPath Helper的使用。关于XPath Helper的使用请查看第4章4.3.3节或配套PPT对应章节内容。知识点4-lxml库简介教师通过PPT的方式讲解Ixml库简介。了解Ixml库的作用是什么。了解 ElementTree 类。了解 Element 类。了解ElementTree类或Element类的查找方法。教师通过PPT的方式讲解Ixml库的作用。为方便开发人员在程序

20、中使用XPath的路径表达式提取节点对应的内容, Python提供了一个第三方库Ixml,通过该库可以轻松地对HTML或XML文档 中的目标节点进行定位并提取。教师通过PPT的方式讲解ElementTree类。黑马程序员传智教育旗下 HYPERLINK :/ itheima itheima I高端IT教育品牌一样的教育,不一样的品质ElementTree类的对象可以理解为一个HTML或XML文档的节点树。为方 便开发者将HTML或XML文档转换为ElementTree类的对象,etree模块中提 供了一个parse。函数。教师通过PPT的方式讲解Element类。Element类的对象可以理解

21、为XML或HTML文档的节点,它与Python中 的列表非常相似,可以使用诸如len()、append() remove。等方法修改节点,也 可以使用索引、切片获取节点集中的子节点。教师通过PPT的方式讲解ElementTree类或Element类的查找方法。(l)find()方法:从节点树的某个节点开始查找,返回匹配到的第一个子 节点。findall。方法:从节点树的某个节点开始查找,以列表的形式返回匹 配到的所有子节点。xpath()方法:从节点树的根节点或某个节点开始查找,以列表的形式 返回匹配到的所有子节点。四、归纳总结教师回顾本节课所讲的内容,并通过测试题的方式引导学生解答问题并给

22、予指导。五、布置作业教师通过高校教辅平台( :/tch.ityxb )布置本节课作业以及下节课 的预习作业。第三课时(Beautiful Soup简介、创立BeautifulSoup类的对象、通过查找方 法选取节点、通过CSS选择器选取节点)一、复习巩固教师通过上节课作业的完成情况,对学生吸收不好的知识点进行再次巩固 讲解。二、教师通过直接导入的方式导入新课上节课主要讲解了 XPath简介、XPath语法、XPath开发工具、Ixml库简 介,接下来,本节课将讲解Beautiful Soup简介、创立Beautiful Soup类的对象、 通过查找方法选取节点和通过CSS选择选取节点。三、新课

23、讲解知识点1- Beautiful Soup简介教师通过PPT的方式讲解Beautiful Soup简介。(1)介绍什么是 Beautiful Soupo(2)介绍Beautiful Soup模块中常用的类教师通过PPT的方式讲解什么是Beautiful Soup。Beautiful Soup是一个用于从HTML或XML文档中提取目标数据的Python 库,它历经了众多版本,其中Beautiful Soup 3目前已经停止开发与维护,官方 推荐使用Beautiful Soup 4 (简称为bs4)进行开发。教师通过PPT的方式讲解Beautiful Soup模块中常用的类。bs4库或bs4.e

24、lement模块中提供了 4个比拟重要的类,分别是Tag类、 NavigableString类、BeautifulSoup类和Comment类,关于这4个类的具体讲解 如下。bs4.element.Tag类:表示HTML中的标签,最基本的信息组织单元。黑马程序员传智教育旗下 HYPERLINK :/ itheima itheima I高端IT教育品牌一样的教育,不一样的品质它有两个非常重要的属性,分别为表示标签名字的name,表示标签属性的attrs。bs4.element.NavigableString类:表示HTML中标签的文本(非属性 字符串)。bs4.BeautifulSoup类:表示

25、HTML D0M中的全部内容,支持遍历文 档树和搜索文档树的大局部方法。bs4.element ment类:表示标签内字符串的注释局部,是一种特 殊的NavigableString类的对象。知识点2.创立Beautiful Soup类的对象教师通过PPT的方式讲解Beautiful Soup类的对象。要想使用Beautiful Soup解析网页,需要先使用构造方法创立一个 BeautifulSoup类的对象。当使用构造方法创立BeautifulSoup类的对象时,该方 法会先将HTML或XML文档转换成Unicode编码后的内容,再选择合适的解 析器来解析整段内容。Beautiful Soup

26、会根据当前系统已经安装的库自动选择解 析器,选择顺序为Ixml-htmlSlib-Python标准库。知识点3.通过查找方法选取节点教师通过PPT的方式讲解通过查找方法选取节点。BeautifulSoup类中提供了一些基于HTML或XML节点树选取节点的方法, 比拟主流的两个方法分别是find。和find_all(), find。方法用于查找符合条件的 第一个节点;find_all()方法用于查找所有符合条件的节点,并以列表的形式进 行返回。find。和find_all()中的参数的具体说明,以及使用请查看第5章5.4.3或PPT 相应章节内容。知识点4.通过CSS选择器选取节点教师通过PPT

27、的方式讲解通过CSS选择器选取节点。bs4库还提供了 CSS选择器进行查找节点。CSS选择器,又称CSS属性选 择器,它是选择需设置样式的元素的模式,这种模式指定了样式作用于网页页 面中的哪些元素,可以使用CSS对HTML页面中的元素进行一对一、一对多 或多对一的控制。CSS选择器有许多种类,其中常用的CSS选择器有类别选择器、元素选择 器、ID选择器和属性选择器,关于这4种选择器的讲解如下。(1)类别选择器:根据类名选择元素,类名前面用进行标注。例如,.intr。 表示选择包含class=intro”的所有元素。(2)元素选择器:根据元素名称选择元素。例如,p表示选择所有vp元 素。(3) ID选择器:根据特定ID选择元素,ID前面加上“产进行标注。例 如,#linkl表示选择特定ID的值为linkl的元素。(4)属性选择器:根据元素的属性选择元素,属性必须用中括号进行包裹, 它既可以是标准属性,也可以是自定义属性。例如,target=_blank表示选择包 含target=_blank”的所有元素。四、归纳总结教师回顾本节课所讲的内容,并通过测试题的方式引导学生解答问题并给 予指导。五、布置作业教师通过高校教辅平台( :tch.it

温馨提示

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

评论

0/150

提交评论