第3单元第2节《处理网络信息》课件(31张PPT)+教案

文档属性

名称 第3单元第2节《处理网络信息》课件(31张PPT)+教案
格式 zip
文件大小 6.6MB
资源类型 试卷
版本资源 川教版
科目 信息技术(信息科技)
更新时间 2021-11-10 17:44:11

文档简介

中小学教育资源及组卷应用平台
川教版信息技术九年级上册《处理网络信息》教学设计
课题 爬取网络信息 单元 三 学科 信息技术 年级 九年级
学习 目标 学会使用Beautiful Soup模块,对获取到的信息进行清理。 了解Html标签在使用Beautiful Soup模块时的作用。 学会字符串合并、替换等简单操作。 掌握在Python中使用open函数保存文件,了解常用编码方式UTF-8与GBK。
重点 字符串合并、替换
难点 使用Beautiful Soup
教学过程
教学环节 教师活动 学生活动 设计意图
导入新课 上一节课中,我们通过Python中用requests模块获取到了“好书推荐”的网页信息,接下来,根据需要对数据进行处理和保存。让我们按照之前分析的步骤一步步来实现吧。 复习旧知,听老师讲解。 回顾旧知,对上节课的内容进行复习。
讲授新课 新知讲解 一、提取书籍名称 使用Beautiful Soup模块,可以很简单的将我们需要的内容从网页中提取出来。具体操作如下: 解析“好书推荐"页面源代码(resTxt即网页源代码变量)的代码:resStr=Beautiful Soup(resTxt,"xml) 这里用Beautiful Soup模块,调用lxml解析器处理网页源代码resTxt,分析出源代码中的标签、数据等,并将处理后的结果赋值给变量resStr。 使用Beautiful Soup模块,提取网页中书籍的名称。用class="lile"作为关键字,通过select函 数来取得所有书籍的名称列表sm的代码如下:sm = restr.seletcCelas"itle"')。sm是所有书籍名称列表,按在网页中出现的先后顺序依次编号为0,1.2.3.4..... 将提取到的书籍名称直接打印,代码如下:print(resStr. slet("lass="tile"') 之后,我们只需要对上一节中的代码稍做修改,即可达到目的。代码如下: 保存以上代码,运行 可得结果 上图,使用Beautiful Soup模块清除掉了除书籍名称之外的所有内容,得到-一个列表,列表中第0项内容是: 水浒传,第1项内容是: 三国演义, ..... 依次类推。 观察上一步的运行结果,发现,每一项中都有不需要的span标签。再将上面代码完善一下,用for循环提取出列表中的每一项内容,并只打印其中的书籍名称,代码如下。 运行结果 如右图所示,我们依次获取到了全部书名并清除了其他内容 合作探究 使用Beautiful Soup模块从网页中获取到需要的信息,关键在于从Html中找到所需信息的“标签”,通过标签的值,就可以将需要的信息提取出来。 所以获取好评数、价格等信息与获取书籍名称的方法相同,只是关键词不同,同学们可以试试修改一下上面的代码,来提取书籍的好评数、内容简介和价格。 提取书籍好评数的代码如右图: 运行结果如左图: 从运行结果可以看见,每种书籍的好评数后面后面都有“条好评”这几个文字,可以使用字符串替换的方法将文字删除,只保留数字,替换命令是replace。 只保留好评数数字部分的代码如右图: 运行结果如左图: 接下来请同学们试运行下面的代码,并观察运行结果,思考replace命令的作用: stra-"这是个草果” print(stra.replace('苹果,桃子)) print(tra.replace("西瓜;桃子"》) 不难发现第一个replace语句将苹果替换成了桃子,而第二个语句中,因为字符串stra中没有“西瓜”,所以替换不成功,返回原字符串。 二、同时提取书名和好评数 前面分别提取到了书名和好评数,我们要将二者结合起来一起显示,这就要使用字符串合并的方法。 合作探究 接下来请同学们运行下面代码,仔细观察打印结果,并思考其中“+”号起了什么作用的作用: stra='欢欢" strb='圆圆' strc='太棒了!' print(stra+ strc) print(stra+strb+strc) 由上面代码可以发现:使用+号,可以将两个字符串合并在一起。使用+号合并字符串在七年级上册Python编程时已经使用过了。用+号合并字符串时,两个字符串之间是没有间隔的。 新知讲解 我们已经分别提取了所有的书名列表和好评数列表,下一步要将每一本书的名称和对应的好评数合并,中间用逗号分隔。用for循环来实现,用fr来依次列举表title中的每一个书名,同时增加变量i表示列表title_ sub的索引号来依次获取对应的好评数,即title_ sub[i],变量i从0开始,依次加1。代码及运行结果如下: 三、保存信息 根据前面的分析,下一步就是将这些信息保存到文件中,以便对数据进行后期处理。像上一步同时提取书名和好评数的代码运行结果中的数据,数据与数据之间用英文逗号来分隔,我们可以将其保存为扩展名为csv的文件,其实就是最简单的Excel文档,可以使用"Excel" 或者“WPS表格”来打开它。 课堂练习 在Python中,我们通常使用open函数来打开、保存、读取及写入文件。 请同学们编写下面代码,将该代码文件保存在Python目录文件夹下,然后运行它,看看会发生什么情况。 fl=open(‘测试文件bor ,’w’, encoding="GBK")#打开一个文件, 但这个文件本不存在。 f.close() #关闭这个被打开的文件 运行程序后,什么结果都没有,再看看代码所在的文件夹呢 文件夹中出现了一个空白的文件,名字就叫“测试文件.tx”。显然,上面的代码做了一件事,那就是新建了一个空白的文件。代码中的w,是单词write(写入)的缩写,意思是以“写入”的方式打开这个文件。文件编码方式是GBK,为默认编码方式,可以不写。如果编码方式是UTF-8, 则必须指定。 接下来用write()方法试试往这个文件中写入内容,看看会发生什么情况。请同学们修改代码如下,观察“测试文件.txt”中发生了什么变化。 fl=open('测试文件.txt' ,'W') fl.write(' 我是欢欢!' ) fl.close() 运行结果如下:“测试文件.txt”中保存了写入的“我是欢欢!” 请同学们再修改代码,往文件中写入另一句话,观察“测试文件.txt”中发生了什么变化,代码如下。 fl=open('测试文件.txt' ,'W') fl.write(' 我喜欢玩Python!' ) f.close() 运行之后,再打开“测试文件.txt”, 发现了什么呢 原始文件中的内容“我是欢欢!”这句话不见了。只有“我喜欢玩Python!”也就是说,使用w方式打开文件,再写入内容,会覆盖掉文件中原来的内容! 请同学们再修改代码,将打开方式写入(w)换成追加(a),运行并观察“测试文件.txt”中发生了什么变化。 fl=open('测试文件. txt' ,'a') fl.write(' 我喜欢玩Python!' ) f.close() 运行之后再打开“测试文件.txt”,发现了什么呢 有2句“我喜欢玩Python!”。使用a方式打开文件,再写入内容,不会覆盖原来的内容,会在后面添加新的内容。 使用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编码的区别 中文网页使用UTF-8编码,外国人访问没有问题 但是,中文网页使用了GBK编码,外国人访问就必须下载中文字体,否则将会看到乱码 UTF-8是全球统一的通用编码 GBK编码是中文环境中的一种编码,并不通用 所以,使用Python编写代码时,建议大家尽量使用UTF-8的编码方式来保存自己的代码。 新知讲解 前面我们通过获得的书名和好评数量的数据,可以保存为后缀名为csv的文件,数据与数据之间使用英文逗号分隔。代码如下: 运行以上代码可得到“书籍数据.csv”文件,首先用记事本打开文件,效果如下图: 用记事本打开文件,可以看到每本书的价格与好评数,都被爬取并保存了下来,数据之间是用英文逗号分隔开的。再用“WPS表格”或“Excel”打开这个文件,效果如下图: 合作探究 拓展:以上内容是把所有的书名和好评数依次合并在一个字符串中,最后用write()方法写入这一个字符串,能用追加的方式来做吗 上面只是获取了书名和好评数,能把书籍价格也加人表格吗 四、我的读物 通过前面的学习,我们可以用Python编写程序,在网络上获取需要的信息,并将其保存到文件中。而后根据需要对保存的数据信息进行加工和处理,提取出对我们有价值的信息。 通过以上步骤保存下来的csv文件可以用“WPS表格”或“Excel”打开,就可以用图表中的柱状图来显示每种书的好评数或者价格,还可以使用排序的功能按好评数从高到低排序,使信息更为直观的体现。 之前学习的数据分析还可以通过写Python程序来实现,用pandas模块中的sort-values函数进行排序。 合作探究 请大家尝试总结网络爬虫的基本工作流程,并进行分享。 通用网络爬虫是从一个或若干个初始网页上的URL开始,读取网页的代码并对页面结构进行分析、过滤,并对感兴趣的内容建立索引,同时提取网页上的其他感兴趣的超链接地址,放入到待爬行队列中,如此循环,直到满足系统的停止条件。 学生进行同步操作。 学生合作操作,进行尝试。 学生小组讨论操作,派出发言人进行分享。并在结束后倾听老师的讲解。 学生同步操作 。 学生合作完成。 锻炼学生的动手和思考能力,让学生更好的掌握知识。 锻炼学生自主学习能力。 锻炼学生运用知识的能力。 帮助学生更具体的了解相关知识,提高学生的动手能力。 锻炼学生自主整合知识的能力。
课堂小结 网络爬虫,是搜索引擎最重要也是最基础的组成部分。 网络爬虫实质是一个能自动下载网页的程序。 听老师的讲解。 梳理本节课的知识点,完成学习目标。
板书 1、提取书籍的名称 2、同时提取书名和好评数 3、保存信息
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
21世纪教育网(www.21cnjy.com)(共33张PPT)
处理网络信息
川教版 九年级上
新知导入
上一节课中,我们通过Python中用requests模块获取到了“好书推荐”的网页信息,接下来,根据需要对数据进行处理和保存。让我们按照之前分析的步骤一步步来实现吧。
新知讲解
一、提取书籍的名称
使用BeautifulSoup模块,可以很简单的将我们需要的内容从网页中提取出来。具体操作如下:
解析“好书推荐"页面源代码(resTxt即网页源代码变量)的代码:
resStr=BeautifulSoup(resTxt,"xml)
这里用BeauifulSoup模块,调用lxml解析器处理网页源代码resTxt,分析出源代码中的标签、数据等,并将处理后的结果赋值给变量resStr。
下面,使用BeautifulSoup模块,提取网页中书籍的名称。用class="lile"作为关键字,通过select函数来取得所有书籍的名称列表,sm的代码如下:
sm = restr.seletcCelas"itle"')。
sm是所有书籍名称列表,按在网页中出现的先后顺序依次编号为0,1.2.3.4.....也可以将提取到的书籍名称直接打印,代码如下:
print(resStr. slet("lass="tile"')
新知讲解
#①引入相应的模块
import requests
from bs4 import BeautifulSoup
#②访问网址获取数据
res=requests.get( http://locahost/haoshu htm')
res. encoding=’UTF-8’
resTxt=fes.text
resStr= BeautifulSoup(resTxt,bxml) # 用BeautiulSoup模块调用Ixmi解析器处理resTxt文本,
#赋值给变量resStr
print(resStr select'[class="titleT')) #打印所有书名,使用Class=tite'来取得书籍的名称
新知讲解
保存以上代码,运行
之后,我们只需要对上一节中的代码稍做修改,即可达到目的。代码如下:
新知讲解
可得结果
上图,使用BeautifulSoup模块清除掉了除书籍名称之外的所有内容,得到一个列表,列表中第0项内容是: 水浒传,第1项内容是: 三国演义, ..... 依次类推。
新知讲解
观察上一步的运行结果,发现,每一项中都有不需要的span标签。再将上面代码完善一下,用for循环提取出列表中的每一项内容,并只打印其中的书籍名称,代码如下。
运行 结果
如右图所示,我们依次获取到了全部书名并清除了其他内容
使用BeautifulSoup模块从网页中获取到需要的信息,关键在于从Html中找到所需信息的“标签”,通过标签的值,就可以将需要的信息提取出来。
合作探究
所以获取好评数、价格等信息与获取书籍名称的方法相同,只是关键词不同,同学们可以试试修改一下上面的代码,来提取书籍的好评数、内容简介和价格。
合作探究
提取书籍好评数的代码如右图:
运行结果如左图:
合作探究
只保留好评数数字部分的代码如右图:
从运行结果可以看见,每种书籍的好评数后面后面都有“条好评”这几个文字,可以使用字符串替换的方法将文字删除,只保留数字,替换命令是replace。
运行结果如左图:
合作探究
接下来请同学们试运行下面的代码,并观察运行结果,思考replace命令的作用:
stra-"这是个草果”
print(stra.replace('苹果,桃子))
print(tra.replace("西瓜;桃子"》)
不难发现第一个replace语句将苹果替换成了桃子,而第二个语句中,因为字符串stra中没有“西瓜”,所以替换不成功,返回原字符串。
新知讲解
前面分别提取到了书名和好评数,我们要将二者结合起来一起显示,这就要使用字符串合并的方法。
二、同时提取书名和好评数
合作探究
接下来请同学们运行下面代码,仔细观察打印结果,并思考其中“+”号起了什么作用的作用:
stra='欢欢"
strb='圆圆'
strc='太棒了!'
print(stra+ strc)
print(stra+strb+strc)
由上面代码可以发现:使用+号,可以将两个字符串合并在一起。使用+号合并字符串在七年级上册Python编程时已经使用过了。用+号合并字符串时,两个字符串之间是没有间隔的。
新知讲解
在上一步, 我们已经分别提取了所有的书名列表和好评数列表,下一步要将每一本书的名称和对应的好评数合并,中间用逗号分隔。用for循环来实现,用fr来依次列举表title中的每一个书名,同时增加变量i表示列表title_ sub的索引号来依次获取对应的好评数,即title_ sub[i],变量i从0开始,依次加1。代码及运行结果如下:
三、保存信息
新知讲解
根据前面的分析,下一步就是将这些信息保存到文件中,以便对数据进行后期处理。像上一步同时提取书名和好评数的代码运行结果中的数据,数据与数据之间用英文逗号来分隔,我们可以将其保存为扩展名为csv的文件,其实就是最简单的Excel文档,可以使用"Excel" 或者“WPS表格”来打开它。
在Python中,我们通常使用open函数来打开、保存、读取及写入文件。
请同学们编写下面代码,将该代码文件保存在Python目录文件夹下,然后运行它,看看会发生什么情况。
fl=open(‘测试文件bor ,’w’, encoding="GBK")#打开一个文件, 但这个文件本不存在。
f.close() #关闭这个被打开的文件
运行程序后,什么结果都没有,再看看代码所在的文件夹呢 文件夹中出现了一个空白的文件,名字就叫“测试文件.tx”。显然,上面的代码做了一件事,那就是新建了一个空白的文件。代码中的w,是单词write(写入)的缩写,意思是以“写入”的方式打开这个文件。文件编码方式是GBK,为默认编码方式,可以不写。如果编码方式是UTF-8, 则必须指定。
课堂练习
接下来用write()方法试试往这个文件中写入内容,看看会发生什么情况。请同学们修改代码如下,观察“测试文件.txt”中发生了什么变化。
fl=open('测试文件.txt' ,'W')
fl.write(' 我是欢欢!' )
fl.close()
运行结果如下:“测试文件.txt”中保存了写入的“我是欢欢!”
课堂练习
请同学们再修改代码,往文件中写入另一句话,观察“测试文件.txt”中发生了什么变化,代码如下。
fl=open('测试文件.txt' ,'W')
fl.write(' 我喜欢玩Python!' )
f.close()
运行之后,再打开“测试文件.txt”, 发现了什么呢 原始文件中的内容“我是欢欢!”这句话不见了。只有“我喜欢玩Python!”也就是说,使用w方式打开文件,再写入内容,会覆盖掉文件中原来的内容!
课堂练习
请同学们再修改代码,将打开方式写入(w)换成追加(a),运行并观察“测试文件.txt”中发生了什么变化。
fl=open('测试文件. txt' ,'a')
fl.write(' 我喜欢玩Python!' )
f.close()
运行之后再打开“测试文件.txt”,发现了什么呢 有2句“我喜欢玩Python!”。使用a方式打开文件,再写入内容,不会覆盖原来的内容,会在后面添加新的内容。
使用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编码的区别
新知讲解
中文网页使用UTF-8编码,外国人访问没有问题
但是,中文网页使用了GBK编码,外国人访问就必须下载中文字体,否则将会看到乱码
GBK编码是中文环境中的一种编码,并不通用
UTF-8是全球统一的通用编码
所以,使用Python编写代码时,建议大家尽量使用UTF-8的编码方式来保存自己的代码。
新知讲解
前面我们通过获得的书名和好评数量的数据,可以保存为后缀名为csv的文件,数据与数据之间使用英文逗号分隔。代码如下:
新知讲解
运行以上代码可得到“书籍数据.csv”文件,首先用记事本打开文件,效果如下图:
用记事本打开文件,可以看到每本书的价格与好评数,都被爬取并保存了下来,数据之间是用英文逗号分隔开的。再用“WPS表格”或“Excel”打开这个文件,效果如下图:
新知讲解
拓展:以上内容是把所有的书名和好评数依次合并在一个字符串中,最后用write()方法写入这一个字符串,能用追加的方式来做吗
上面只是获取了书名和好评数,能把书籍价格也加入表格吗
合作探究
四、我的读物
通过前面的学习,我们可以用Python编写程序,在网络上获取需要的信息,并将其保存到文件中。而后根据需要对保存的数据信息进行加工和处理,提取出对我们有价值的信息。
新知讲解
新知讲解
通过以上步骤保存下来的csv文件可以用“WPS表格”或“Excel”打开,就可以用图表中的柱状图来显示每种书的好评数或者价格,还可以使用排序的功能按好评数从高到低排序,使信息更为直观的体现。
之前学习的数据分析还可以通过写Python程序来实现,用pandas模块中的sort-values函数进行排序。
合作探究
请大家尝试总结网络爬虫的基本工作流程,并进行分享
合作探究
通用网络爬虫是从一个或若干个初始网页上的URL开始,读取网页的代码并对页面结构进行分析、过滤,并对感兴趣的内容建立索引,同时提取网页上的其他感兴趣的超链接地址,放入到待爬行队列中,如此循环,直到满足系统的停止条件。
开始
初始URL
采集网页
抽取已采集的URL加入采集URL队列
满足停止条件
结束


课堂总结
网络爬虫,是搜索引擎最重要也是最基础的组成部分。
网络爬虫实质是一个能自动下载网页的程序。
板书设计
1、提取书籍的名称
2、同时提取书名和好评数
3、保存信息
处理网络信息
https://www.21cnjy.com/help/help_extract.php
同课章节目录