信息技术九年级上册第2节 处理网络信息优质课件ppt
展开上一节课中,我们通过Pythn中用requests模块获取到了“好书推荐”的网页信息,接下来,根据需要对数据进行处理和保存。让我们按照之前分析的步骤一步步来实现吧。
使用BeautifulSup模块,可以很简单的将我们需要的内容从网页中提取出来。具体操作如下:
解析“好书推荐"页面源代码(resTxt即网页源代码变量)的代码: resStr=BeautifulSup(resTxt,"xml)
这里用BeauifulSup模块,调用lxml解析器处理网页源代码resTxt,分析出源代码中的标签、数据等,并将处理后的结果赋值给变量resStr。
下面,使用BeautifulSup模块,提取网页中书籍的名称。用class="lile"作为关键字,通过select函数来取得所有书籍的名称列表,sm的代码如下: sm = restr.seletcCelas"itle"')。
sm是所有书籍名称列表,按在网页中出现的先后顺序依次编号为0,也可以将提取到的书籍名称直接打印,代码如下: print(resStr. slet("lass="tile"')
#①引入相应的模块imprt requestsfrm bs4 imprt BeautifulSup#②访问网址获取数据res=requests.get( httplcahst/hashu htm')res. encding=’UTF-8’resTxt=fes.textresStr= BeautifulSup(resTxt,bxml) # 用BeautiulSup模块调用Ixmi解析器处理resTxt文本, #赋值给变量resStrprint(resStr select'[class="titleT')) #打印所有书名,使用Class=tite'来取得书籍的名称
之后,我们只需要对上一节中的代码稍做修改,即可达到目的。代码如下:
上图,使用BeautifulSup模块清除掉了除书籍名称之外的所有内容,得到一个列表,列表中第0项内容是: 水浒传,第1项内容是: 三国演义, 依次类推。
观察上一步的运行结果,发现,每一项中都有不需要的span标签。再将上面代码完善一下,用fr循环提取出列表中的每一项内容,并只打印其中的书籍名称,代码如下。
如右图所示,我们依次获取到了全部书名并清除了其他内容
使用BeautifulSup模块从网页中获取到需要的信息,关键在于从Html中找到所需信息的“标签”,通过标签的值,就可以将需要的信息提取出来。
所以获取好评数、价格等信息与获取书籍名称的方法相同,只是关键词不同,同学们可以试试修改一下上面的代码,来提取书籍的好评数、内容简介和价格。
提取书籍好评数的代码如右图:
只保留好评数数字部分的代码如右图:
从运行结果可以看见,每种书籍的好评数后面后面都有“条好评”这几个文字,可以使用字符串替换的方法将文字删除,只保留数字,替换命令是replace。
接下来请同学们试运行下面的代码,并观察运行结果,思考replace命令的作用:stra-"这是个草果”print(stra.replace('苹果,桃子))print(tra.replace("西瓜;桃子"》)
不难发现第一个replace语句将苹果替换成了桃子,而第二个语句中,因为字符串stra中没有“西瓜”,所以替换不成功,返回原字符串。
前面分别提取到了书名和好评数,我们要将二者结合起来一起显示,这就要使用字符串合并的方法。
二、同时提取书名和好评数
接下来请同学们运行下面代码,仔细观察打印结果,并思考其中“+”号起了什么作用的作用:stra='欢欢"strb='圆圆'strc='太棒了!'print(stra+ strc)print(stra+strb+strc)
由上面代码可以发现:使用+号,可以将两个字符串合并在一起。使用+号合并字符串在七年级上册Pythn编程时已经使用过了。用+号合并字符串时,两个字符串之间是没有间隔的。
在上一步, 我们已经分别提取了所有的书名列表和好评数列表,下一步要将每一本书的名称和对应的好评数合并,中间用逗号分隔。用fr循环来实现,用fr来依次列举表title中的每一个书名,同时增加变量i表示列表title_ sub的索引号来依次获取对应的好评数,即title_ sub[i],变量i从0开始,依次加1。代码及运行结果如下:
根据前面的分析,下一步就是将这些信息保存到文件中,以便对数据进行后期处理。像上一步同时提取书名和好评数的代码运行结果中的数据,数据与数据之间用英文逗号来分隔,我们可以将其保存为扩展名为csv的文件,其实就是最简单的Excel文档,可以使用"Excel" 或者“WPS表格”来打开它。
在Pythn中,我们通常使用pen函数来打开、保存、读取及写入文件。
请同学们编写下面代码,将该代码文件保存在Pythn目录文件夹下,然后运行它,看看会发生什么情况。fl=pen(‘测试文件br ,’w’, encding="GBK")#打开一个文件, 但这个文件本不存在。f.clse() #关闭这个被打开的文件
运行程序后,什么结果都没有,再看看代码所在的文件夹呢?文件夹中出现了一个空白的文件,名字就叫“测试文件.tx”。显然,上面的代码做了一件事,那就是新建了一个空白的文件。代码中的w,是单词write(写入)的缩写,意思是以“写入”的方式打开这个文件。文件编码方式是GBK,为默认编码方式,可以不写。如果编码方式是UTF-8, 则必须指定。
接下来用write()方法试试往这个文件中写入内容,看看会发生什么情况。请同学们修改代码如下,观察“测试文件.txt”中发生了什么变化。fl=pen('测试文件.txt' ,'W')fl.write(' 我是欢欢!' )fl.clse()
运行结果如下:“测试文件.txt”中保存了写入的“我是欢欢!”
请同学们再修改代码,往文件中写入另一句话,观察“测试文件.txt”中发生了什么变化,代码如下。fl=pen('测试文件.txt' ,'W')fl.write(' 我喜欢玩Pythn!' )f.clse()
运行之后,再打开“测试文件.txt”, 发现了什么呢?原始文件中的内容“我是欢欢!”这句话不见了。只有“我喜欢玩Pythn!”也就是说,使用w方式打开文件,再写入内容,会覆盖掉文件中原来的内容!
请同学们再修改代码,将打开方式写入(w)换成追加(a),运行并观察“测试文件.txt”中发生了什么变化。fl=pen('测试文件. txt' ,'a')fl.write(' 我喜欢玩Pythn!' )f.clse()
运行之后再打开“测试文件.txt”,发现了什么呢?有2句“我喜欢玩Pythn!”。使用a方式打开文件,再写入内容,不会覆盖原来的内容,会在后面添加新的内容。
使用pen函数打开文件,要注意打开方式的参数:读“r”、写“w”、追加“a”。 读文件时要求文件已经存在,写或者追加时,若文件不存在可以自动创建一个新文件。写入文件时要注意,“w”方式会把原来的内容覆盖,“a”方式会把新内容加在原文末尾。
小拓展:GBK编码与UTF-8编码
中文Windws系统下,默认的文件编码为GB2312 ( GBK),所以程序中使用pen函数时,没有用encding='编码方式'这个参数强行指定某种编码。
从网页上去爬取数据时,网页的编码方式绝大多数都是UTF-8。
所以,要把网页上的数据保存到电脑上时,最好强行指定编码为GBK。否则编码不正确,会导致保存、读取或者写入的文本变成乱码。所以,通常使用pen函数将内容写入到文件时,可直接写为:文件变量名=pen("文件名.txt" ,"a",encding="GBK")
GBK编码与UTF-8编码的区别
中文网页使用UTF-8编码,外国人访问没有问题
但是,中文网页使用了GBK编码,外国人访问就必须下载中文字体,否则将会看到乱码
GBK编码是中文环境中的一种编码,并不通用
UTF-8是全球统一的通用编码
所以,使用Pythn编写代码时,建议大家尽量使用UTF-8的编码方式来保存自己的代码。
前面我们通过获得的书名和好评数量的数据,可以保存为后缀名为csv的文件,数据与数据之间使用英文逗号分隔。代码如下:
运行以上代码可得到“书籍数据.csv”文件,首先用记事本打开文件,效果如下图:
用记事本打开文件,可以看到每本书的价格与好评数,都被爬取并保存了下来,数据之间是用英文逗号分隔开的。再用“WPS表格”或“Excel”打开这个文件,效果如下图:
拓展:以上内容是把所有的书名和好评数依次合并在一个字符串中,最后用write()方法写入这一个字符串,能用追加的方式来做吗?上面只是获取了书名和好评数,能把书籍价格也加入表格吗?
通过前面的学习,我们可以用Pythn编写程序,在网络上获取需要的信息,并将其保存到文件中。而后根据需要对保存的数据信息进行加工和处理,提取出对我们有价值的信息。
通过以上步骤保存下来的csv文件可以用“WPS表格”或“Excel”打开,就可以用图表中的柱状图来显示每种书的好评数或者价格,还可以使用排序的功能按好评数从高到低排序,使信息更为直观的体现。
之前学习的数据分析还可以通过写Pythn程序来实现,用pandas模块中的srt-values函数进行排序。
请大家尝试总结网络爬虫的基本工作流程,并进行分享
通用网络爬虫是从一个或若干个初始网页上的URL开始,读取网页的代码并对页面结构进行分析、过滤,并对感兴趣的内容建立索引,同时提取网页上的其他感兴趣的超链接地址,放入到待爬行队列中,如此循环,直到满足系统的停止条件。
抽取已采集的URL加入采集URL队列
网络爬虫,是搜索引擎最重要也是最基础的组成部分。
网络爬虫实质是一个能自动下载网页的程序。
1、提取书籍的名称2、同时提取书名和好评数3、保存信息
初中信息技术川教版(2019)九年级上册第1节 爬取网络信息优秀课件ppt: 这是一份初中信息技术川教版(2019)九年级上册<a href="/xx/tb_c4024181_t3/?tag_id=26" target="_blank">第1节 爬取网络信息优秀课件ppt</a>,文件包含新课标川教版2019信息技术九上31《爬取网络信息》课件pptx、新课标川教版2019信息技术九上31《爬取网络信息》教案docx等2份课件配套教学资源,其中PPT共21页, 欢迎下载使用。
信息技术九年级上册第2节 建造智能温室精品课件ppt: 这是一份信息技术九年级上册<a href="/xx/tb_c4024177_t3/?tag_id=26" target="_blank">第2节 建造智能温室精品课件ppt</a>,文件包含新课标川教版2019信息技术九上22《建造智能温室》课件ppt、新课标川教版2019信息技术九上22《建造智能温室》教案doc等2份课件配套教学资源,其中PPT共29页, 欢迎下载使用。
初中信息技术川教版(2019)九年级上册第1节 设计智能温室精品课件ppt: 这是一份初中信息技术川教版(2019)九年级上册<a href="/xx/tb_c4024176_t3/?tag_id=26" target="_blank">第1节 设计智能温室精品课件ppt</a>,文件包含新课标川教版2019信息技术九上21《设计智能温室》课件ppt、新课标川教版2019信息技术九上21《设计智能温室》教案doc等2份课件配套教学资源,其中PPT共23页, 欢迎下载使用。