资源简介 中小学教育资源及组卷应用平台九年级上册信息技术教学设计课题 《处理网络信息》 单元 三单元 学科 信息技术 年级 九年级学习目标 1.学会使用BeautifulSoup模块,对获取到的信息进行清理。2.了解Html标签在使用BeautifulSoup模块时的作用。3.学会字符串合并、替换等简单操作。4.掌握在Python中使用open函数保存文件,了解常用编码方式UTF-8与GBK。重点 会使用BeautifulSoup模块,对获取到的信息进行清理;了解Html标签在使用BeautifulSoup模块时的作用。难点 会字符串合并、替换等简单操作;掌握在Python中使用open函数保存文件,了解常用编码方式UTF-8与GBK。教学过程教学环节 教师活动 学生活动 设计意图导入新课讲授新课 新课导入上一节中,我们在Python中用requests模块获取到了“好书推荐”的网页信息,接下来,根据需要对数据进行处理和保存。让我们按前面分析的步骤一步一步来实现吧。二、新知讲解(一)、提取书籍的名称使用BeautifulSoup模块,可以很简单地将我们需要的内容从网贝中提取出来。解析“好书推荐”页面源代码(resTxt即网页源代码变量)的代码如下:resStr=BeautifulSoup(resTxt,lxml)这里,用BeautifulSoup模块调用lxml解析器处理网页源代码resTxt,分析出源代码中的标签、数据等,并将处理后的结果赋值给变量resStr。下面,使用BeautifulSoup模块,提取网页中书籍的名称。用class="title"作为关键字,通过se!ect函数来取得所有书籍的名称列表sm的代码如下:sm=resStr.select([class="title"])sm是所有书籍名称列表,按在网页中出现的先后顺序依次编号为0,1,2,3,4……也可以将提取到的书籍名称直接打印,代码如课本所示。我们只需要对上一节中的代码稍做修改,即可达到目的,代码如课本所示。保存上面代码,运行,结果如图3-2-1所示。上图,使用BeautifulSoup模块清除掉了除书籍名称之外的所有内容,得到一个列表,列表中第0项内容是:三国演义,……,以此类推。每一项目中都有不需要的span标签,再将上面代码完善一下,用for循环提取出列表中的每一项内容,并只打印其中的书籍名称,代码如课本所示。运行结果如图3-2-2所示。如上图所示,我们依次获取到了全部书名并清除了其他内容。使用BeautifulSoup模块从网页中获取到需要的信息,关键在于从Html中找到所需信息的“标签”,通过标签的值,就可以将需要的信息提取出来。拓展:获取好评数、价格等信息与获取书籍名称的方法相同,只是关键词不同。同学们可试试修改一下上面的代码,来提取书籍的好评数、内容简介和价格。提取书籍好评数的代码如课本所示。运行结果如图3-2-3所示。小提示:每种书籍的好评数后面部有“条好评”这几个文字,可以使用字符串替换的方法将文字删除,只保留数字,替换命令是replace。请同学们运行下面代码,并观察运行结果,思考 replace命令的作用。stra=“这是个苹果”print( stra. replace(苹果’桃子)print( stra. replace(西瓜,桃子)不难发现第一个 replace语句将苹果替换成了桃子,而第个语句中,因为字符串stra中没有“西瓜”,所以替换不成功,返回原字符串。只保留好评数数字部分的代码如课本所示。运行结果如图3-2-4所示。(二)、同时提取书名和好评数前面分别提取到了书名和好评数,我们要将二者结合起来一起显示,这就要使用字符串合并的方法。小提示:请同学们运行下面代码,仔细观察打印结果,并思考其中的+号起了什么作用 由上面代码可以发现:使用+号,可以将两个字符串合并在一起。使用+号合并字符串在七年级上册Pytbon编程时已经使用过了。用+号合并字符串时,两个字符串之间是没有间隔的。我们已陉分别提取了所有的书名列表和好评数列表,下一步要将每一本书的名称和对应的好评数合并,中间用逗号分隔。用for循环来实现,用fr来依次枚举列表little中的每一个书名,同时增加变量i表示列表litle-sub的索引号来依次获取对应的好评数,即litle-sub[i],变量i从0开始,依次加1,代码如课本所示。运行结果如图3-2-5所示。(三)、保存信息根据前面的分析,下一步就是将这些信息保存到文件中,以便对数据进行后期处理。像图3-2-5中的数据,数据与数据之间用英文逗号来分隔,我们可以将其保存为扩展名为csv的文件,其实就是最简单的Excel文档,可以使用“Excel”或者“WPS表格”来打开它。小提示:保存文件在Python中,我们通常使用open函数来打开、保存、读取及写入文件。请同学们编写下面代码,将该代码文件保存在Python目录文件夹下,然后运行它,看看会发生什么情况。运行程序后,什么结果都没有,再看看代码所在的文件夹呢 文件夹中出现了一个空白的文件,名字就叫“测试文件。txt”显然,上面的代码做了一件事,那就是新建了一个空白的文件。代码中的w,是单词 write(写入)的缩写,意思是以“写入”的方式打开这个文件。文件编码方式是GBK,为默认编码方式,可以不写。如果编码方式是UTF8,则必须指定。现在用 write方法试试往这个文件中写入内容,看看会发生什么情况。请同学们修改代码如下,观察“测试文件txt”中发生了什么变化。运行结果如图3-2-6所示。现在代测试文件txt”中保存了写入的“我是欢欢!”请同学们再修改代码,往文件中写入另一句话,观察“测试文件txt”中发生了什么变化,代码如课本所示。运行之后再打开“测试文件txt”,发现了什么呢 原始文件中的内容“我是欢欢!”这句话不见了。只有“我喜欢玩Python!”也就是说,使用w方式打开文件,再写入内容,会覆盖掉文件中原来的内容。使用open函数打开文件,要注意打开方式的参数:读“r”、写“w”、追加“a'”、读文件时要求文件已经存在,写或者追加时,若文件不在可以自动创建一个新文件。写入文件时要注意,“w”方式会把原来的内容覆盖,"a”方式会把新内容加在原文末尾。拓展阅读:GBK编码与UTF-8编码无论是保存文件、读取文件,还是往文件中写入内容,都要注意,文件可能会有不同的编码。中文Windows系统下,默认的文件编码是GB2312(GBK),所以程序中使用open函数时,并没有用encoding=编码方式’这个参数强行指定某种编码。但是从网页上去爬取数据时,网页的编码方式绝大多数都是UTF-8的,要把网页上的数据保存到电脑上时,最好就强行指定编码为GBK。否则编码不正确,会导致保存、读取或者写入的文本变成乱码。所以,通常使用open函数将内容写入到文件时,可直接写为:文件变量名=open("文件名.txt","a",encoding="GBK")那么,GBK编码与UTF-8编码到底有什么区别呢 最早的电脑都是使用英文的,英文一个字母只占一个字符,为了在电脑中使用中文,我国就制定了一个名叫GB2312的编码标准。但GB2312只有常用汉字,并没有包含所有汉字。为此,又在GB2312的基础上扩展,形成了GBK编码,包含了几乎所有汉字与特殊字符。其他国家也存在文字编码方式需要统一的问题,所以UTF-8编码产生了。如果中文网页使用了UTF-8编珥,外国人访问也没有问题;如果中文网页使用了GBK编码,则外国人访问就必须下载中文字体,否则就看到乱码。所以,UTF-8是全球统一的通用编码,而GBK编码是中文环境中的一种编码,并不通用。在我们学习Python编程语言时,可使用网上太量的现成模块,这些模块的作者来自于全球各地。所以,使用Pytbon编写代码时,建议大家尽量使用UTF-8的编码方式来保存自己的代码当调用了UTF-8编码的外部模块时,可能我们编写的程序会出现一些出乎意料的问题。前面爬虫获取到的书名和好评数的数据,可以保存为后缀名为csv的文件,数据与数据之间,使用英文逗号来分隔。代码如课本所示。运行代码即可得到“书籍数据。csv”文件,首先用记事本打开这个文件,效果如图3-2-6所示。如图3-2-6所示,每本书的价格与好评数,都被爬取并保存了下来,数据之闾是用英文逗号分隔开的。再用“WPS表格”或“Excel”打开这个文件,效果如图3-2-7所示。拓展:上面是把所有的书名和好评数依次合并在一个字符串中,最后用write0方法写入这一个字符串,能用追加的方式来做吗 上面只是获取了书名和好评数、能把书籍价格也加入表格吗 (四)、我的课外读物通过前面的学习,我们可以用Python编写程序,在网络上获取需要的信息,并将其保存到文件中。而后根据需要对保存的数据信息进行加工和处理,提取出对我们有价值的信息。情景展示:欢欢:谢谢老师!我觉得,虽然获取到了数据,但这些数据太多了,我能知道哪些书好评数最高,哪些书价格最便宜就更好啦。乐乐:刚才保存下来的csv文件可以用“WPS表格”或“Excel”打开,那我就可以用图表中的柱形图来显示每种书的好评数或者价格了,这样看起来更直观。欢欢:嗯,我们还可以用排序的功能按好评数从高到低排序,就能看到哪些书最受欢迎;按价格从低到高排序,就能看到哪些书最便宜啦。乐乐:对,我们以前学的表格数据处理这下都能用上了。欢欢:我们上学期学习的数据分析还能通过写Python程序来实现呢,用pandas模块中的sort_values函数进行排序。老师:你们说的都很对,把以前学习的知识灵活地运用起来,就能解决很多生活中的问题。通过这一次学习网络爬虫你们学到了很多知识,能用思维导图的方式把这些知识梳理一下吗 了解本节课的学习内容听老师讲解探索学习了解思考 replace命令的作用学习保存信息探索实践阅读思考:GBK编码与UTF-8编码到底有什么区别呢 了解观看 使学生对本节课的学习内容有一个大致的了解学习提取书籍的名称学生利用自主探究、小组合作、实践操作的方法去解决问题;师生直观演示更具说服力,加深印象。增加知识面锻炼思维,培养表达能力培养学生举一反三、学习迁移的能力;鼓励学生尝试完成操作练习学习保存信息采用了分层教学法,关注学生差异,发展学生个性。拓展知识面了解GBK编码与UTF-8编码锻炼思维增加知识面了解课堂小结 三、课堂小结今天你有哪些收获?遇到了哪些困难?是怎么解决的?还有哪些困惑? 分享交流 学习反馈学会倾听作业布置 四、作业布置 预习下一课《爬虫中的法律和道德》。 预习下一课 培养自主学习能力板书 第2节 处理网络信息提取书籍的名称同时提取书名和好评数保存信息我的课外读物21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)HYPERLINK "http://www.21cnjy.com/" 21世纪教育网(www.21cnjy.com)(共44张PPT)九年级上册处理网络信息学习目标01.学会使用BeautifulSoup模块,对获取到的信息进行清理。。02.了解Html标签在使用BeautifulSoup模块时的作用。03.学会字符串合并、替换等简单操作。04.掌握在Python中使用open函数保存文件,了解常用编码方式UTF-8与GBK。上一节中,我们在Python中用requests模块获取到了“好书推荐”的网页信息,接下来,根据需要对数据进行处理和保存。让我们按前面分析的步骤一步一步来实现吧。(一)、提取书籍的名称使用BeautifulSoup模块,可以很简单地将我们需要的内容从网贝中提取出来。resStr=BeautifulSoup(resTxt,’lxml’)解析“好书推荐”页面源代码(resTxt即网页源代码变量)的代码如下:这里,用BeautifulSoup模块调用lxml解析器处理网页源代码resTxt,分析出源代码中的标签、数据等,并将处理后的结果赋值给变量resStr。sm是所有书籍名称列表,按在网页中出现的先后顺序依次编号为0,1,2,3,4……下面,使用BeautifulSoup模块,提取网页中书籍的名称。用class="title"作为关键字,通过se!ect函数来取得所有书籍的名称列表sm的代码如下:sm=resStr.select(‘[class="title"]‘)也可以将提取到的书籍名称直接打印,代码如下:print(resStr.select(‘class=”litle”]’)我们只需要对上一节中的代码稍做修改,即可达到目的,代码如下:保存上面代码,运行,结果如图3-2-1所示。上图,使用BeautifulSoup模块清除掉了除书籍名称之外的所有内容,得到一个列表,列表中第0项内容是:三国演义,……,以此类推。每一项目中都有不需要的span标签,再将上面代码完善一下,用for循环提取出列表中的每一项内容,并只打印其中的书籍名称,代码如下:运行结果如图3-2-2所示。如上图所示,我们依次获取到了全部书名并清除了其他内容。使用BeautifulSoup模块从网页中获取到需要的信息,关键在于从Html中找到所需信息的“标签”,通过标签的值,就可以将需要的信息提取出来。拓展获取好评数、价格等信息与获取书籍名称的方法相同,只是关键词不同。同学们可试试修改一下上面的代码,来提取书籍的好评数、内容简介和价格。提取书籍好评数的代码如下:运行结果如图3-2-3所示。小提示每种书籍的好评数后面部有“条好评”这几个文字,可以使用字符串替换的方法将文字删除,只保留数字,替换命令是replace。请同学们运行下面代码,并观察运行结果,思考 replace命令的作用。不难发现第一个 replace语句将苹果替换成了桃子,而第个语句中,因为字符串stra中没有“西瓜”,所以替换不成功,返回原字符串。只保留好评数数字部分的代码就是:运行结果如图3-2-4所示。(二)、同时提取书名和好评数前面分别提取到了书名和好评数,我们要将二者结合起来一起显示,这就要使用字符串合并的方法。1请同学们运行下面代码,仔细观察打印结果,并思考其中的+号起了什么作用 由上面代码可以发现:使用+号,可以将两个字符串合并在一起。使用+号合并字符串在七年级上册Pytbon编程时已经使用过了。用+号合并字符串时,两个字符串之间是没有间隔的。我们已陉分别提取了所有的书名列表和好评数列表,下一步要将每一本书的名称和对应的好评数合并,中间用逗号分隔。用for循环来实现,用fr来依次枚举列表little中的每一个书名,同时增加变量i表示列表litle-sub的索引号来依次获取对应的好评数,即litle-sub[i],变量i从0开始,依次加1,代码如课本所示。运行结果如图3-2-5所示。(三)、保存信息根据前面的分析,下一步就是将这些信息保存到文件中,以便对数据进行后期处理。像图3-2-5中的数据,数据与数据之间用英文逗号来分隔,我们可以将其保存为扩展名为csv的文件,其实就是最简单的Excel文档,可以使用“Excel”或者“WPS表格”来打开它。请同学们编写下面代码,将该代码文件保存在Python目录文件夹下,然后运行它,看看会发生什么情况。在Python中,我们通常使用open函数来打开、保存、读取及写入文件。运行程序后,什么结果都没有,再看看代码所在的文件夹呢 文件夹中出现了一个空白的文件,名字就叫“测试文件。txt”显然,上面的代码做了一件事,那就是新建了一个空白的文件。代码中的w,是单词 write(写入)的缩写,意思是以“写入”的方式打开这个文件。文件编码方式是GBK,为默认编码方式,可以不写。如果编码方式是UTF8,则必须指定。现在用 write方法试试往这个文件中写入内容,看看会发生什么情况。请同学们修改代码如下,观察“测试文件txt”中发生了什么变化。运行结果如图3-2-6所示。请同学们再修改代码,往文件中写入另一句话,观察“测试文件txt”中发生了什么变化,代码如下:小提示运行之后再打开“测试文件txt”,发现了什么呢 原始文件中的内容“我是欢欢!”这句话不见了。只有“我喜欢玩Python!”也就是说,使用w方式打开文件,再写入内容,会覆盖掉文件中原来的内容。网络爬虫及其作用网络爬虫,又被称为网页蜘蛛、网络机器人等。它的本质,是一种按照一定的规则,自动爬取网络信息的程序或脚本。网络爬虫帮助搜索引擎从互联网上读取网页,是搜索引擎最重要也是最基础的组成部分网络爬虫能快速、高效地帮助我们获取到有用的信息,特别是当我们需要从网络上大规模的获取某类信息时,网络爬虫将会使我们的工作事半功倍。所以,理解网络爬虫的基本原理,甚至能够自己编写爬虫,是我们生活在信息时代应该具备的技能。使用open函数打开文件,要注意打开方式的参数:读“r”、写“w”、追加“a'”、读文件时要求文件已经存在,写或者追加时,若文件不在可以自动创建一个新文件。写入文件时要注意,“w”方式会把原来的内容覆盖,"a”方式会把新内容加在原文末尾。拓展阅读GBK编码与UTF-8编码无论是保存文件、读取文件,还是往文件中写入内容,都要注意,文件可能会有不同的编码。中文Windows系统下,默认的文件编码是GB2312(GBK),所以程序中使用open函数时,并没有用encoding=编码方式’这个参数强行指定某种编码。但是从网页上去爬取数据时,网页的编码方式绝大多数都是UTF-8的,要把网页上的数据保存到电脑上时,最好就强行指定编码为GBK。否则编码不正确,会导致保存、读取或者写入的文本变成乱码。所以,通常使用open函数将内容写入到文件时,可直接写为:文件变量名=open("文件名.txt","a",encoding="GBK")那么,GBK编码与UTF-8编码到底有什么区别呢 最早的电脑都是使用英文的,英文一个字母只占一个字符,为了在电脑中使用中文,我国就制定了一个名叫GB2312的编码标准。但GB2312只有常用汉字,并没有包含所有汉字。为此,又在GB2312的基础上扩展,形成了GBK编码,包含了几乎所有汉字与特殊字符。拓展阅读其他国家也存在文字编码方式需要统一的问题,所以UTF-8编码产生了。如果中文网页使用了UTF-8编珥,外国人访问也没有问题;如果中文网页使用了GBK编码,则外国人访问就必须下载中文字体,否则就看到乱码。所以,UTF-8是全球统一的通用编码,而GBK编码是中文环境中的一种编码,并不通用。在我们学习Python编程语言时,可使用网上太量的现成模块,这些模块的作者来自于全球各地。所以,使用Pytbon编写代码时,建议大家尽量使用UTF-8的编码方式来保存自己的代码当调用了UTF-8编码的外部模块时,可能我们编写的程序会出现一些出乎意料的问题。前面爬虫获取到的书名和好评数的数据,可以保存为后缀名为csv的文件,数据与数据之间,使用英文逗号来分隔。代码如下:运行代码即可得到“书籍数据。csv”文件,首先用记事本打开这个文件,效果如图3-2-6所示。如图3-2-6所示,每本书的价格与好评数,都被爬取并保存了下来,数据之闾是用英文逗号分隔开的。再用“WPS表格”或“Excel”打开这个文件,效果如图3-2-7所示。上面是把所有的书名和好评数依次合并在一个字符串中,最后用write0方法写入这一个字符串,能用追加的方式来做吗 上面只是获取了书名和好评数、能把书籍价格也加入表格吗 (四)、我的课外读物通过前面的学习,我们可以用Python编写程序,在网络上获取需要的信息,并将其保存到文件中。而后根据需要对保存的数据信息进行加工和处理,提取出对我们有价值的信息。刚才保存下来的csv文件可以用“WPS表格”或“Excel”打开,那我就可以用图表中的柱形图来显示每种书的好评数或者价格了,这样看起来更直观。谢谢老师!我觉得,虽然获取到了数据,但这些数据太多了,我能知道哪些书好评数最高,哪些书价格最便宜就更好啦。嗯,我们还可以用排序的功能按好评数从高到低排序,就能看到哪些书最受欢迎;按价格从低到高排序,就能看到哪些书最便宜啦。我们上学期学习的数据分析还能通过写Python程序来实现呢,用pandas模块中的sort_values函数进行排序。老对,我们以前学的表格数据处理这下都能用上了。你们说的都很对,把以前学习的知识灵活地运用起来,就能解决很多生活中的问题。通过这一次学习网络爬虫你们学到了很多知识,能用思维导图的方式把这些知识梳理一下吗 下课啦! 展开更多...... 收起↑ 资源列表 九年级上册信息技术3.2《处理网络信息》川教版.doc 九年级上册信息技术3.2《处理网络信息》川教版.pptx