版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高中信息技术Python创意编程第64课:B站视频数据初探——基于网络爬虫的数据采集教学设计一、教学分析(一)课程基本信息【非常重要】本节课为高中信息技术课程选择性必修模块“网络基础”与“数据分析与人工智能”的跨项目融合课,同时也是校本创意编程课程的第64课时。授课对象为高中二年级学生,他们已经完成了Python编程的基础语法学习,掌握了顺序、分支、循环结构,并对字符串、列表、字典等基本数据结构有了初步的认知和实践经验。本节课以学生高度关注的“Bilibili视频平台”为真实情境,引导学生运用Python编程技术解决真实问题——获取并初步解析视频数据。(二)教学内容分析【基础】本课内容属于“数据处理的一般过程”中的“数据采集”阶段。教材中对于数据采集的讲解往往局限于本地文件的读取或简单的数据库查询,而本课则将触角延伸至互联网开放数据的获取。通过引入第三方库(如bilibiliapipython或requests+json解析),让学生理解网络应用的基本原理——HTTP请求与响应、API接口的使用、JSON数据格式的解析。这不仅是Python编程技能的进阶应用,更是将抽象的“协议”与“接口”概念具象化的最佳载体。课程内容横跨“网络基础”中关于数据封装、传输的认知,以及“数据分析”中关于数据来源的探究,具有极强的跨学科视野和综合实践性。(三)学情分析【热点】高二学生对B站等视频平台有着天然的亲近感和浓厚的探索欲,他们不仅是内容的消费者,也渴望成为数据的洞察者。然而,学生目前的技术储备尚停留在“编写代码处理静态数据”的阶段,对于如何通过编程与网络服务交互、如何从海量的网络信息中“抓取”结构化数据(如视频标题、播放量、点赞数),既感到神秘又充满好奇。他们具备基本的Python语法基础,但面对网络编程中的库安装、异常处理、反爬机制等问题时,往往缺乏系统的思路和方法。因此,本节课需要搭建合适的脚手架,引导他们跨越从“本地处理”到“网络交互”的技术鸿沟。(四)设计理念与核心素养聚焦本节课严格遵循《普通高中信息技术课程标准(2017年版2020年修订)》的基本理念,践行“基于理解的教学设计(UbD)”的逆向设计逻辑。教学目标并非仅仅是让学生“学会写一段爬虫代码”,而是通过项目化学习,让他们深刻“理解”网络数据采集背后的思想与方法,并在此过程中全面发展信息技术学科核心素养:1.【重要】信息意识:在面对感兴趣的数据时,能够敏锐地意识到其可获取性、获取途径及可能存在的技术壁垒与法律边界(如robots协议),形成主动获取有效信息的意识。2.【非常重要】计算思维:能够将一个真实的、非结构化的问题(“我想知道某个UP主近期的视频表现如何”)抽象、分解为一个形式化的、计算机可以处理的问题(“确定数据源URL、发送请求、解析JSON数据、提取关键字段、存储为表格”)。在分析数据异常(如反爬)时,能进行问题界定和算法优化。3.【难点】数字化学习与创新:能够熟练运用网络搜索、官方文档查阅、AI辅助编程等数字化工具,自主探究并解决在库安装、API调用过程中遇到的具体技术问题。通过编写独创的数据采集脚本,体验利用数字化工具进行创新性研究的乐趣。4.【重要】信息社会责任:在获取网络公开数据的过程中,引导学生理解并遵守法律法规和平台规则,尊重数据版权和个人隐私,不进行恶意爬取和破坏性采集,树立正确的信息伦理观。二、教学目标基于上述分析,本节课的教学目标设定如下:1.学生能够说出通过网络API获取公开数据的基本流程(发送请求接收响应解析数据),理解requests库和json库在此过程中的作用。【基础】【理解】2.学生能够阅读并理解简单的API调用文档,编写Python代码,调用bilibiliapipython或直接使用requests库向B站API发送请求,获取指定UP主的视频列表数据。【重要】【应用】3.学生能够对获取到的JSON格式数据进行解析,提取视频标题、播放量、点赞、投币、收藏等关键字段,并将其组织成便于分析的二维数据结构(如列表嵌套字典),为后续的数据分析做准备。【高频考点】【应用】4.学生能够在编程实践中初步掌握异常处理机制()和简单的请求频率控制(time.sleep),体验应对网络请求不稳定、反爬机制等真实问题的解决过程。【难点】【综合】5.学生能够在小组讨论中,辩证地分析网络数据采集的伦理边界,尊重平台规则,承诺不将技术用于恶意攻击或侵犯他人权益。【热点】【价值】三、教学重难点(一)教学重点1.【核心】理解HTTP请求与响应的基本概念,掌握使用Python的requests库(或封装好的第三方库)获取网络数据的核心代码模式。2.【基础】掌握JSON数据格式的特点,并能够运用json库或字典索引的方式从复杂的JSON结构中精准提取目标数据。(二)教学难点1.【难点】面对复杂的、嵌套层级较深的API返回数据(JSON),能够通过观察结构、逻辑推理,准确定位所需字段的路径。2.【挑战】理解并初步应对网络数据采集中常见的反爬策略(如UserAgent模拟、请求频率限制),建立“技术为人服务,也要遵守规则”的工程伦理意识。四、教学方法与准备(一)教学方法采用“项目式学习”与“支架式探究”相结合的教学模式。教师不再是单纯的知识传授者,而是学习情境的创设者、核心概念的阐释者、学习支架的提供者和思维深化的引导者。学生以“小小数据洞察者”的身份,通过“明确任务自主探究协作攻关分享反思”的路径完成项目实践。(二)教学准备1.【重要】硬件环境:多媒体网络机房,确保每位学生使用的电脑均可正常访问互联网,并能访问B站(用于演示和验证)。2.【基础】软件环境:安装Python3.8+集成开发环境(推荐Thonny或VSCode),并提前安装好requests、json(内置)、time(内置)、pandas(可选,用于展示数据整理)等库。教师可提前准备好离线安装包或搭建本地PyPI镜像源,以防网络拥堵。3.【基础】教学资源:教师预先准备一个B站UP主的mid(例如某个知识区的UP主),并提前测试好API接口的可用性。准备一份半成品的“脚手架代码”,一份完整的“参考代码”,以及一份关于B站API简要说明的学案。五、教学实施过程(一)创设情境,激发动机(5分钟)【热点引入】教师活动:教师在多媒体屏幕上展示B站首页,提问:“同学们,B站是大家非常熟悉的学习和娱乐平台。你们关注的UP主,哪期视频最受欢迎?是播放量最高,还是‘一键三连’(点赞、投币、收藏)的比例更高?如果我们想客观地分析一个UP主最近一年的创作趋势,手动去一页页翻、一条条记,效率太低了。有没有什么办法,能让我们的Python程序帮我们自动完成这项繁琐的收集工作呢?”学生活动:学生观看演示,产生好奇心和解决问题的冲动。部分有经验的学生可能会脱口而出“爬虫”。教师总结与引出课题:“没错,这就是我们今天要探究的主题——让Python化身数据采集员,对Bilibili视频数据进行初步的解析。我们将化身为‘数据洞察者’,用代码去对话网络,获取有价值的第一手资料。这不仅是编程技能的跃升,更是我们理解数字世界运行方式的一把钥匙。”(二)原理剖析,搭建脚手架(10分钟)1.【基础】揭示“对话”原理:教师通过类比,讲解网络数据获取的基本原理。将“用户浏览器服务器”的交互类比为“顾客服务员后厨”。浏览器(服务员)向服务器(后厨)的特定窗口(API接口)点餐(发送HTTP请求),服务器根据菜单要求,将封装好的菜肴(JSON/XML数据)通过服务员返回给顾客(我们的Python程序)。强调我们今天要做的,就是用Python程序扮演“顾客”的角色,直接与服务员的“点餐窗口”(API)沟通。2.【重要】介绍关键工具:1.3.requests库:介绍它是Python中用来向服务器“发送请求”和“接收响应”的利器,可以让我们轻松模拟浏览器的行为。https://api.bilibili/x/space/arc/search?mid=ps=30pn=1https://api.bilibili/search?mid=ps=30pn=1),并解释参数(mid是UP主身份码,ps是每页数量,pn是页码)。预览接口返回的JSON数据,让学生直观感受这种结构化数据交换格式,就像一个大号的、组织严密的“嵌套字典”。5.【基础】明确任务与提供脚手架:1.6.教师发布本节课的核心项目任务:编写一个Python程序,输入指定UP主的mid,能够自动获取其最近发布的若干条视频的标题、播放量、点赞数、投币数和收藏数,并将结果清晰地打印出来。2.7.教师提供半成品的“脚手架代码”,其中已经写好了库的导入、函数的定义框架以及必要的注释,学生需要在关键的位置(发送请求、解析数据、提取字段)补充核心代码。这有助于降低学生的认知负荷,让他们聚焦于最核心的“理解请求与解析”环节。python半成品脚手架代码(b站数据采集_脚手架.py)导入必要的库importrequestsimporttimeimportjson定义一个函数,用于获取并解析UP主的视频数据deffetch_up_videos(mid):"""根据UP主的mid,获取其视频列表的第一页数据,并提取关键信息。"""1.准备请求的URL(API接口)https://api.bilibili/x/space/arc/searchhttps://api.bilibili/x/space/arc/search"设置请求参数params={"mid":mid,UP主的身份码"pn":1,页码,先获取第一页"ps":10,每页数量,先获取10条}【重要】设置请求头,模拟浏览器访问,这是一种最基本的反爬应对策略headers={"UserAgent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/91.0.4472.124Safari/537.36"}2.发送HTTPGET请求(需要学生补充异常处理)print(f"正在请求数据,mid:{mid}...")try:学生需要在这里补充发送get请求的代码response=requests.get(url,params=params,headers=headers,timeout=10)检查请求是否成功(状态码200)response.raise_for_status()如果状态码不是200,会抛出异常print("请求成功!")exceptrequesions.Requesionase:print(f"请求失败:{e}")returnNone3.解析返回的JSON数据学生需要将响应的文本(response.)解析为Python字典data=json.loads(response.)或者直接使用response.json()方法data=response.json()4.【难点】从复杂的嵌套结构中提取视频列表学生需要根据返回的JSON结构,找到视频列表所在的路径通常结构是:data['data']['list']['vlist']try:video_list=data['data']['list']['vlist']exceptKeyErrorase:print(f"数据解析失败,关键字段不存在:{e}")print("原始返回数据:",data)调试用returnNone5.遍历视频列表,提取我们需要的字段print("\n视频数据采集结果")foridx,videoinenumerate(video_list,1):title=video.get('title','无标题')视频标题play=video.get('play',0)播放量like=video.get('like',0)点赞数coin=video.get('coin',0)投币数favorite=video.get('favorites',0)收藏数bvid=video.get('bvid','未知')BV号print(f"{idx}.标题:{title}")print(f"BV号:{bvid}|播放:{play}|点赞:{like}|投币:{coin}|收藏:{favorite}\n")returnvideo_list主程序入口if__name__=="__main__":设定要分析的UP主mid(例如:某知名知识区UP主的mid)target_mid=需要替换为真实的midfetch_up_videos(target_mid)(三)自主探究,协作攻关(20分钟)【非常重要】学生活动:学生分成45人小组,基于教师提供的脚手架代码,开始探究和实践。主要任务包括:1.【基础】环境检验与调试:首先在自己的机器上运行脚手架代码(此时关键位置是缺失的),观察报错信息,理解哪些部分需要补充。2.【核心】代码补全与尝试:1.3.探究点1:如何补全requests.get()部分?需要哪些参数?(params,headers)2.4.探究点2:如何获取服务器返回的JSON数据?是response.还是response.json()?3.5.探究点3:【难点】代码中的video_list=data['data']['list']['vlist']这个路径是如何确定的?学生需要通过print(data.keys())、print(data['data'].keys())等方式,像剥洋葱一样层层递进,探索出正确的索引路径。6.【应用】数据提取与格式化:使用字典的get()方法安全地提取数据,并打印出格式美观的结果。7.【挑战】异常与礼貌:尝试故意输错一个参数,观察程序是否会崩溃?如何使用让程序更健壮?如何利用time.sleep(1)在请求之间增加1秒的暂停,做一个“礼貌”的数据采集者?教师活动:巡回指导,扮演“学习促进者”的角色。不直接给出答案,而是通过启发式提问引导学生自己发现问题。例如,当学生为找不到数据路径而困惑时,提问:“你打印出整个data变量看了吗?它的顶级结构是什么样的?你要找的vlist可能藏在哪个大括号里?”同时,密切关注小组的进展,及时发现共性问题,准备进行集中点拨。(四)展示交流,思维深化(7分钟)【热点】【难点】小组展示:邀请12个完成度较高或有独特发现的小组,通过教师机向全班展示他们的运行成果,并分享在探究过程中的“高光时刻”和“至暗时刻”。例如,他们是如何通过打印调试一步步找到vlist的;他们遇到了哪些奇怪的报错,又是如何解决的。教师提炼与深化:1.技术层面:再次强调从“URL请求响应解析”的全流程,肯定学生在面对复杂JSON结构时表现出的计算思维——通过分解、抽象和模式识别来解决问题。2.工程层面:赞扬学生在代码中加入time.sleep和异常处理的做法,并引申出“工程师的职业道德”——技术不仅要“能用”,更要“好用”、“友善”,不给他人的服务器造成过大压力。简要提及robots协议,引导学生自行查阅学习。3.数据层面:引导学生观察采集到的数据,提问:“这些数据能告诉我们什么?是播放量和点赞数总是成正比吗?这为我们下一阶段的数据清洗和分析埋下了伏笔。”(五)总结拓展,价值引领(3分钟)【重要】【价值】课堂总结:1.知识总结:师生共同回顾本节课的核心知识链——发现问题(想分析B站数据)、探究原理(网络请求与API)、掌握工具(requests+JSON)、实践应用(编写采集程序)。2.伦理重申:【非常重要】教师再次强调信息社会责任。技术本身是中性的,但使用技术的人必须心怀敬畏。我们学习数据采集,是为了更好地洞察世界、辅助决策,而绝非用于恶意攻击、侵犯隐私或破坏平台秩序。每一位“数据洞察者”都应恪守法律与道德的底线。3.拓展延伸:展示一个简单的基于pandas和matplotlib的数据分析图表(如播放量趋势图),抛出一个诱人的问题:“采集到的数据只是一堆冰冷的数字,如何让它们‘开口说话’,讲述UP主成长的动人故事?这将是下一节课我们将要探索的精彩内容。”以此激发学生对后续课程(数据清洗、分析与可视化)的持续兴趣。六、板书设计高中信息技术:B站视频数据初解析一、核心原理:网络数据采集1.对话模型:客户端(Python)<>API接口<>服务器(数据库)2.关键技术:HTTP请求(GET/POST)+数据格式(JSON)二、核心工具:Python双雄1.requests库:负责“敲门”和“取货”(发送请求,接收响应)requests.get(url,params,headers)response.status_code,response.,response.json()2.json库:负责“拆箱”和“整理”(解析数据)json.loads()将JSON字符串转为Python字典/列表三、核心流程:四步走1.寻址:找到API接口(URL)2.请求:带好“身份牌”(Headers)和“问题”(Params)3.解析:层层递进,精准定位(字典键名探索)4.提取:获取所需字段,结构化存储四、核心规范:礼貌与安全1.控制频率:time.sleep()2.异常处理:3.遵守规则:尊重robots.txt,不恶意攻击七、教学评价设计评价维度评价指标评价方式信息意识能够认识到网络公开数据的价值,并主动寻求通过技术手段获取数据。课堂观察、小组讨论参与度计算思维【重要】能够清晰地阐述从“真实问题”到“代码实现”的抽象、分解过程;能够独立完成JSON数据的路径探索和字段提取。代码质量、小组汇报、学案记录数字化学习与创新能够利用网络资源(如搜索引擎、AI助手)解决编程中遇到的库安装、语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程师项目进度管理绩效评定表
- 2026年校园餐、教辅、校服“三项整治”校长履职手册
- 2026年处理客户投诉程序更新说明6篇范文
- 职场发展晋升路径优化方案
- JJF(辽) 567-2025 流量控制用节流孔板校准规范
- 正式通知2026年终庆典活动举办时间变更4篇范文
- 教育机构教务长教学质量提升KPI考核表
- 贸易合同审查与风险防范预案
- 产品推广计划提交及审核进度催办函3篇
- 行政人事管理制度优化与执行策略指导
- 2026夏季防汛安全知识培训
- 2026新教材人教版九年级上册英语暑假预习:Unit 1 The Changing World 词汇详解
- 护栏安装工程承揽协议
- 2026驾照科目一全新全攻略:新规解读、核心考点与零基础通关指南
- 、2026 广州中考历史 试卷
- 2026年建筑电工(建筑特殊工种)考试题库及答案
- 2026浙江杭州萧山交通投资集团有限公司Ⅱ类岗位招聘6人笔试参考题库及答案详解
- 2026年云南省中考物理真题
- 2026年秋国家开放大学国开电大机考期末园艺植物栽培学总论试题及答案
- 2026年黑龙江、吉林、辽宁、内蒙古高考物理试卷
- 水利水电工程单元工程施工质量检验表与验收表(SLT631.5-2025)
评论
0/150
提交评论