还剩9页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
Python程序设计实践教程》课程教案《课题网络爬虫入门教学目的
1.在〃网络爬虫入门获取网络信息(requests库、Beautiful Soup库)〃的学习中,教学目的聚焦于知识、技能、思维与素养多个维度
2.在知识层面让学生深度理解网络爬虫的基本原理,明晰其在网络数据获取中的运作机制;系统掌握requests库发送HTTP请求的各类方法,包括不同请求方式的特点与适用场景,以及Beautiful Soup库对网页内容进行解析的核心概念与技术
3.技能培养上学生要熟练运用requests库构建请求,能够根据网页结构与需求,灵活设置请求头、参数等,成功获取网页源代码;精准使用Beautiful Soup库定位、筛选与提取网页中的特定数据,如文本信息、链接地址、图片路径等,形成独立完成简单网页数据爬取任务的实操能力
4.思维拓展方面引导学生在面对不同结构网页时,学会分析网页布局,制定合理的数据提取策略,培养逻辑思维与问题解决能力;在处理反爬机制时,激发创新思维,探索绕过限制的有效方法
5.素养塑造上强调网络爬虫需遵循法律法规与道德规范,培养学生的法律意识与道德操守,确保在合法合规的框架内开展数据获取活动课型:新授课课时本章安排2个课时教学重点重点1,了解获取网络信息的基本方法
2.熟悉requests库的使用方法
3.了解BeautifulSoup库的基本操作
4.学会简单的爬虫及解析网页的方法教学难点:网页内容进行解析,让我们能精准定位并提取所需信息,如文本、链接等通过实操,我们掌握了基本爬虫流程,为后续深入数据挖掘筑牢基础但也需留意,网络爬虫应在合法合规的框架内使用,避免对网站造成不良影响难点教学难点在于让学生精准把握requests库请求参数的设置以应对各类网页反爬机制,同时熟练运用Beautiful Soup库复杂的解析方法,从结构多变的网页中准确提取目标数据教学过程
1.教学形式讲授课,教学组织采用课堂整体讲授和分组演示
2.教学媒体采用启发式教学、案例教学等教学方法教学手段采用多媒体课件、视频等媒体技术板书设计本课标题网络爬虫入门课次
0.5课时安排2授课方式理论课口讨论课口习题课口其他口学分共2分授课对象普通高等院校学生任课教师教材及参考资料
1.《Python程序设计实践教程》
2.本教材配套视频教程及学习检查等资源
3.与本课程相关的其他资源教学基本内容教学方法及教学手段课程引入参考以下形式同学们,当你在电商平台选购商品,是不是常纠结同款商L衔接导入品哪家更实惠?此时,若能一键获取各大平台的价格、销量
2.悬念导入和用户评价,选购就会轻松很多这背后,靠的正是网络爬
3.情景导入虫技术在当今数据驱动的时代,企业需耍分析竞品信息、
4.激疑导入挖掘用户需求,媒体要追踪热点舆情,都离不开大量网络数
5.演示导入据的支撑就拿热门综艺来说,节目制作方想了解观众反馈,靠人工浏览评论效率极低,而网络爬虫能迅速抓取各大平台
6.实例导入的评论数据今天,我们将学习使用requests库和Beautiful
7.其他形式Soup库开启网络爬虫之旅requests库能像浏览器一样向网页服务器发送请求,获取网页内容;Beautiful Soup库则负责将复杂的网页结构梳理清晰,帮我们精准提取所需信息让我们一起探索,掌握这一高效获取网络信息的技能实验16网络爬虫入门
1.教学以学生学习教材的基本内
一、实验目的容为主,系统全面地了解网络爬
1.了解获取网络信息的基本方法虫入门
2.熟悉requests库的使用方法
2.整个教学过程中,各教学点可根据实际情况,进行拓展知识的
3.了解BeautifulSoup库的基本操作讲解
4.学会简单的爬虫及解析网页的方法
二、知识要点
1.获取网络信息网络爬虫Web Crawler又称为网页蜘蛛、网络机器人,是一种按照一定规则自动爬取网络信息的程序或脚本目前,网络爬虫抓取与解析的主要是特定网站中的数据爬取网页的流程如下
①选取一些网页,将这些网页的链接地址作为种子URL2将种子URL放入待抓取URL队列中3爬虫从待抓取URL队列队列先进先出中依次读取URL,并通过DNS解析URL,把链接地址转换为网站服务器对应的IP地址4将
③中生成的IP地址和网页相对路径传输给网页下载器5网页下载器将相应网页的内容下载到本地
⑥将
⑤中下载的网页内容存储在页面模块中,等待建立索引以及进行后续处理与此同时,将已下载的网页URL放入已抓取URL队列中,避免重复抓取网页7从已下载的网页内容中抽取出所有链接,检查其是否已被抓取,若未被抓取,则将这个URL放入待抓取URL队列中
⑧重复
②〜
⑦,直到待抓取URL队列为空爬虫是获得网页、解析网页的过程,下面介绍requests库和Beaut ifulSoup库的基本操作
2.requests库requests库提供了比标准库urllib更简洁的网页内容读取功能,是常见的网络爬虫工具之一requests库提供了7个主要方法request方法是基础方法,get、head、post、put、patch、delete等方法均由其构造而成,如表16-1所示表16-1requests库的7个主要方法方法说明requests,request构造一个请求,支撑其他方法requests,get获取HTML网页获取HTML头部信息requests,head0向HTML网页提交post请求requests.post0requests.put向HTML网页提交put请求向HTML网页提交局部修改请求requests,pate hrequests.dele向HTML网页提交删除请求te通过requests库请求指定服务器的URL,请求成功后返回一个Response对象Response对象的属性如表16~2所示表16-2Response对象的属性属性说明HTTP请求的返回状态,200表示连接status_code成功,404表示失败HTTP响应内容的字符串形式,即URLtext对应的页面内容从HTTP请求头中猜测的响应内容编encoding码方式apparent_en从内容中分析出的响应编码方式备coding选编码方式content HTTP响应内容的二进制数形式使用requests库抓取目标网页的步骤如下1安装及导入requests库在Windows操作系统中安装requests库的代码如下pip installrequests导入requests库的代码如下import requests2使用requests库网络爬虫主要使用requests库的get方法,语法格式如下requests,geturl,params二None,**kwargs3Robots协议Robots协议是网络爬虫协议,主要用于指导网络爬虫的爬取规则,即哪些页面可以爬取,哪些页面不能爬取
3.BeautifulSoup库BeautifulSoup4简称bs4是一个HTML/XML解析器,主要功能是解析和提取HTML/XML数据,它支持CSS选择器、Python标准库中的HTML解析器、Ixnd库中的XML解析器BeautifulSoup库可以将复杂的HTML文档转换成树结构,树结构中的每个节点都是一个Python对象1安装及导入BeautifulSoup库在Windows操作系统中安装BeautifulSoup库的代码如下pip installBeautifulSoup4导入BeautifulSoup库的代码如下from bs4import BeautifulSoup2BeautifulSoup库的使用BeautifulSoup库的对象如表16-3所示表16-3BeautifulSoup库的对象对象W标签,最基本的信息组织单元;Tag有两个非常重要的属性,分别是表示标签名字的name属性和表示标签属性的attrs属性Navigab1表示HTML中标签的文本(非属性字符串)eStringBeautifu表示HTML DOM中的全部内容ISoup表示标签内字符串的注释部分,是一种特殊的CommentNavigableString对象BeautifulSoup库常用的属性和方法如表16-4所示(设对象名为“beautsoup)表16-4BeautifulSoup库常用的属性和方法属性和方法说明范例title获取HTML的标签〈title》beautsoup.titl e获取HTML标签所返回的网页text beautsoup.text内容返回第一个符合条件的HTML标签;beautsoup.find Cfind()返回值是字符串,如果找不head,)到则返回“None”返回符合条件的HTML标find_beautsoup.find签.allO_all(,a,):面值是字符串返回指定的CSS选择器的idbeautsoup.sele ct名称、class名称或标签名C#id名称)称;beautsoup.sele ctselecto返回值是一种列表数据类(.class名称,)型;beautsoup.sele ctid名称前要加上“#,class(标签名称’)名称前要加上”
三、实例解析【实例16-1】获取百度首页的基本信息1问题分析网络爬虫和信息提取是requests库的基本功能,通过url参数将页面地址传递给get方法,该方法返回的是一个Response对象Response对象包含一系列非常有用的属性,通过读取这些属性的值能够获得所需要的信息2程序代码#sll6-l.pyimport requests#导入requests库r二requests,geturl=http://www.baidu.com#用get方法获取源码printr.status_code#输出返回雨状态代码r.encoding=utf-8,#设定编码格式为UTF-8printr.text#输出网页内容程序运行结果如下200信息文字省略3思考与讨论与浏览器的交互过程一样,requests,get代表请求过程,它返回的Response对象代表响应【实例16-2】下载《红楼梦》获取《红楼梦》的回目名称并下载全文1问题分析
①搜索页面从网络上获取《红楼梦》的回目名称,假设要爬取的网址为http://www.A.com/hlm/o
②解析网页用BeautifulSoup库也可以用正则表达式找到各回目的链接,取出每个链接页面的文本,将所有文本写入同一个文件中2程序代码#sll6-
2.py#coding:utf-8〃〃〃下载红楼梦全文〃〃〃import requestsfrom bs4import BeautifulSoup#导入BeautifulSoup库import reimporttimedef get htmlurl:得到网页内容,使用requestsr二requests.get urlr.encoding=〃gbl8030〃#这个网站用的是gbl8030编码return r.textdef get linkshtml:soup=BeautifulSouphtml,html.parser,#将BeautifulSoup库的html.parser作为源码的解析器,并将解析的对象设定给变量souptable=soup,findtable,{cellpadding:〃3〃}links二table,find alla,{‘href:re.compile r\d{3}\.htm,一#找到所有链接printlinksreturn linksdef extract_texthtml:一得蓟子页面中的文本,使bs4,soup=BeautifulSouphtml,html.parser,#得到soup对象title=soup,title,text#标题text=soup,table,font,text#正文return〃\n〃+title+〃\n〃+texturl=http://www.A.com/hlm/#将网址赋给变量url,得到目录页html=get_html urllinks=getlinkshtml#从后录页中找到子页的链接并下载file=opendream.txt〃,〃w〃,encoding二〃utf-8〃for linkinlinks:title=link.text,replace\u3000,,#取得回目名称href=url+link[href]#注意换成绝对网址printhref,titlesub html=get htmlhreftext=extract_textsubhtmlfile.write texttime,sleep1file,close3运行结果http://www.A.com/hlm/
001.htm村甄士隐梦幻识通灵贾雨风尘怀闺秀http://www.A.com/hlm/
002.htm兴贾夫人仙逝扬州城冷子演说荣国府http://www.A.com/hlm/
003.htm孙托内兄如海荐西宾接外贾母惜孤女http:〃www.A.com/hlm/
004.htm僧薄命女偏逢薄命郎葫芦乱判葫芦案http://www.A.com/hlm/
005.htm仙贾宝玉神游太虚境警幻曲演红楼梦http://www.A.com/hlm/
006.htm姥贾宝玉初试云雨情刘姥一进荣国府http://www.A.com/hlm/
007.htm府送宫花贾琏戏熙凤宴宁宝玉会秦钟【实例16-3】获取中国大学排名编写获取中国大学排名的爬虫实例,采用requests库和BeautifulSoup库1问题分析使用BeautifulSoup库来解析网页表格中的内容,由于表格table中有多行tr,而每行中有多个单元格td,因此采用双重循环alljiniv是学校信息的列表,假设要爬取的网址是https:〃www.A.cn/rankings/bcur/2022o程序代码2#sll6-
3.py#coding:utf-8〃〃〃爬取大学排名〃”import requests#导入requests库frombs4import BeautifulSoup#导入BeautifulSoup库all_univ=[]#学桢信息的列表def get_html url:〃〃〃得到网页内容”〃try:r二requests,geturl,timeout=10r.encoding=utf-8”return r.textexcept:〃〃returndef get_universitieshtml:〃〃〃栽到数据〃soup=BeautifulSoup html,,zhtml.parser/7#用html.parser解析程序代码rows=soup,f ind_alltr#获取所有表格行for trin rows:cells=tr.find_all Jtd,#获取所有单元格if lencells==O:#忽略一些行continueuniv二口#用来存放各项数据for tdin cells:univ.append id.textall_univ.append univ#加入到总列袤中def print_universities_topnum:〃〃〃显示数据〃”printC排名〃,〃学校名称类型〃,〃总分,sep二〃\t〃for iin rangenum:u=all univ[i]printu
[0],u[l],u
[3],u
[4],sep=〃〃def main:url=https://www.A.cn/rankings/bcur/2022,#将网址赋给变量urlhtml=gethtmlurl获得网页内容get_universitieshtml解析得蓟数据print universitiestop10#显示前10所大学main运行结果如下排名学校名称类型总分1清华大学Tsinghua University双一流/985/211综合
999.42北京大学Peking University双一流/985/211综合
912.53浙江大学Zhejiang University双一流/985/211综合
825.3
四、实验内容
1.使用requests库编写爬虫程序,在当当网中用“机器学习”关键字搜索图书,并利用BeautifulSoup库解析搜索到的图书的书名、出版社、价格信息
2.利用网络爬虫技术抓取某房地产网站首页的信息,抓取页面中的部分数据,包括详细地址、详情链接、房型、户型、面积、出售价格、登记时间,并以表格的形式保存
3.编写一个程序,对某新闻网站的内容进行解析,找出该网站报道的当天热点事件
4.使用requests库和BeautifulSoup库爬取猫眼电影排行榜的电影名称和评分信息
5.爬取招聘网站上的招聘信息,获得招聘数据,分析不同城市的招聘岗位数量、平均工资水平、不同因素对平均薪资的影响程度,用以指导个人的求职决策
6.爬取某城市的旅游数据,分析热门旅游景点
7.使用requests库和BeautifulSoup库将“诗词名句网”中《三国演义》的内容爬取到本地磁盘进行存储____________________________早下小结本章在“网络爬虫入门”实验中,我们借助requests库与BeautifulSoup库,开启了获取网络信息的探索之旅requests库犹如一位得力信使,轻松实现与网页服务器的通信,能便捷地发送HTTP请求,获取网页的HTML源代码而Beautiful Soup库则像一位精细的工匠,对获取到的。
个人认证
优秀文档
获得点赞 0