高中信息技术必修一 5.2 数据的采集 教学设计_第1页
高中信息技术必修一 5.2 数据的采集 教学设计_第2页
高中信息技术必修一 5.2 数据的采集 教学设计_第3页
高中信息技术必修一 5.2 数据的采集 教学设计_第4页
高中信息技术必修一 5.2 数据的采集 教学设计_第5页
已阅读5页,还剩14页未读, 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高中信息技术必修一5.2数据的采集教学设计一、教材分析与课程定位《数据的采集》是粤教版高中信息技术必修一《数据与信息》模块第5章的第二节内容,承接了5.1节对数据与信息基本概念的建构,为后续的数据处理、分析与可视化奠定数据源基础。教材围绕“数据从哪里来、怎么获取、获取时需注意什么”三个核心问题展开,涵盖数据采集的基本途径、常用工具与方法、采集过程中的伦理法律规范三大板块。该节内容具有鲜明的工具性、实践性与规范性特征,既要求学生掌握爬虫、API、传感器、问卷等多元化采集技术,又强调隐私保护、知识产权、数据安全等合规意识的养成,是培养学生数据意识、计算思维与社会责任的关键载体。结合新课标“信息意识、计算思维、数字化学习与创新、信息社会责任”四大核心素养,本节课的教学重点在于:让学生在真实任务情境中体验完整数据采集生命周期,理解结构化与非结构化数据的获取差异,掌握PythonRequests库与BeautifulSoup库协作完成网页数据解析的基础技能,建立“合法合规、最小必要、安全可控”的数据伦理底线。教学难点在于:如何引导学生从“会用工具”进阶到“懂原理、能判断、可迁移”,特别是在反爬虫机制识别、动态网页渲染处理、采集效率与服务器压力平衡等工程化问题上的思维跨越。二、学情分析与教学对策本班学生已完成初中阶段Python基础语法、列表字典等数据结构、文件读写操作的学习,具备基本的程序阅读与调试能力。但普遍存在三层认知断层:一是对HTTP协议、HTML文档树、JSON数据交换格式等Web基础设施缺乏系统性理解,将网页采集简单等同于“复制粘贴”;二是面对反爬虫策略(UserAgent校验、IP限流、验证码、JavaScript动态渲染)时缺乏排查思路,易陷入“代码跑不通—百度复制—依然报错”的盲目循环;三是法律意识淡薄,常将公开网页数据视为“理所应当免费资源”,忽视《网络安全法》《数据安全法》《个人信息保护法》及网站`robots.txt`协议的约束力。针对上述学情,教学设计遵循“脚手架搭建—真实任务驱动—反思迁移内化”路径:第一课时构建Web基础认知脚手架,通过抓包工具可视化HTTP交互过程,拆解请求头、响应码、Cookie机制;第二课时实施“校园二手书交易信息采集”真实项目,分四个迭代版本逐步攻克静态页解析、分页递归、反爬绕过、数据清洗入库全流程;第三课时引入API调用与传感器采集对比实验,拓宽采集视野;第四课时设计“合规性审计”辩论与案例复盘,将法律条文转化为可操作的工程清单。全过程贯穿“最小化采集、显式授权获取、脱敏存储、日志留痕”四项工程守则,将合规意识内化为肌肉记忆。三、教学目标1.信息意识:能辨析结构化、半结构化、非结构化数据在来源、形态、价值上的差异;理解数据采集作为数据科学链条起点对下游分析质量的决定性影响;树立“数据有源、采集有据、使用有责”的全链路责任观。2.计算思维:掌握HTTP/HTTPS请求响应模型,能读懂HTMLDOM树与CSS选择器定位逻辑;熟练运用Requests+BeautifulSoup完成静态网页定向采集;会用浏览器开发者工具分析XHR/Fetch接口,实现动态数据直接获取;理解异步并发、指数退避重试、代理池轮换等工程化优化策略。3.数字化学习与创新:能针对给定采集需求(如“监测某电商平台教材价格波动”“采集气象站PM2.5实时数据”),设计包含目标分析、工具选型、异常处理、存储方案、合规自查的完整技术路线图;具备将采集脚本模块化、配置化、容器化部署的初步工程能力。4.信息社会责任:熟读《个人信息保护法》第13、14、27、28条及《数据安全法》第21、22、31条,能依据`robots.txt`、服务条款、隐私政策判断采集合法性;承诺不采集个人隐私敏感字段,不绕过付费墙与验证码,不实施高频请求导致服务拒绝,建立数据采集伦理红线清单。四、教学重难点与突破策略重点:Requests库参数配置(headers、params、cookies、proxies、timeout)、BeautifulSoup四大对象类型(Tag、NavigableString、BeautifulSoup、ment)与选择器语法(标签、属性、CSS、正则)、分页逻辑抽象与终止条件设计、CSV/JSON/SQLite三种存储范式选择依据。难点:动态网页中JavaScript渲染数据的定位与提取(对比Selenium/Playwright与XHR接口直连两种方案优劣)、反爬虫机制的特征识别与针对性破解(字体反爬、JS加密签名、行为分析风控)、采集任务的鲁棒性设计(网络抖动、结构变更、IP封禁的自愈机制)。突破策略:采用“最小可行性脚本→压力测试→故障注入→重构优化”四阶段迭代教学法。每阶段预设典型故障场景(如突然返回403、HTML类名重构、关键字段缺失),引导学生编写防御性代码(重试装饰器、结构变更监测告警、数据质量校验规则),在真实报错中建立工程化思维。五、教学资源与环境准备硬件环境:机房安装Anaconda发行版(Python3.11+),预置Chrome/Edge浏览器、FiddlerClassic/Charles抓包工具、DBBrowserforSQLite可视化工具、PostmanAPI测试客户端。服务器端部署一台运行Nginx+Gunicorn+Flask的演示站点(`/bookmart`),模拟真实二手书交易平台,内置可配置的反爬策略(UserAgent白名单、IP频率限制、动态Token、字体映射加密),供教学实时调控难度。软件包清单:`requests==2.31.0``beautifulsoup4==4.12.2``lxml==4.9.3``pandas==2.1.4``sqlalchemy==2.0.23``tenacity==8.2.3``fakeuseragent==1.5.1``loguru==0.7.2`。所有依赖打包为`requirements.txt`,学生通过`pipinstallrrequirements.txti/simple`统一安装。教案包资源:提供`starter/`骨架代码(含日志、配置、异常基类)、`selectors.yml`选择器配置文件(实现页面结构变更时仅改配置不动代码)、`checklist.md`合规自查清单、`cases/`五个典型反爬案例站点离线镜像、`dataset/`预采集基准数据集(用于对比验证采集完整性)。六、教学过程设计(四课时,每课时45分钟)课时一:Web基础设施透视与静态采集首秀(45分钟)【导入·5分钟】投屏展示两张截图:左图为某招聘网站“Python开发工程师”搜索结果页,右图为同一页面的浏览器开发者工具Network面板。提问:“当你点击‘下一页’时,浏览器与服务器之间发生了什么不可见的对话?为什么右键‘另存为’得到的HTML里找不到职位薪资数据?”引导学生关注XHR/Fetch请求、JSON响应体、请求头中的Referer与XRequestedWith字段。确立本课核心驱动问题:“如何用代码复刻浏览器的‘隐形对话’,精准拿到我们想要的数据?”【探究一:HTTP对话可视化·12分钟】分组实操:打开Fiddler,设置HTTPS解密,访问演示站点`/list?page=1`。观察会话列表,筛选`text/html`类型,点击Inspectors→Headers/Response。教师巡场提问:“状态码200/304/403/429分别意味着什么?ResponseHeaders里的`ContentEncoding:gzip`、`SetCookie:session=...`、`CacheControl:nocache`各自控制什么行为?请求头里必须带哪些字段才能让服务器‘认为’你是正常浏览器?”学生在协作记录表填写关键字段对照表,建立HTTP报文结构心智模型。【探究二:从HTML树到目标数据·15分钟】演示站点返回标准HTML表格结构。教师现场编码:`resp=requests.get(url,headers=HEADERS,timeout=10)`→`soup=BeautifulSoup(resp.text,'lxml')`→`rows=soup.select('tablebooklisttbodytr')`。讲解CSS选择器组合技:`tr:nthoftype(n+2)`跳过表头、`td[dataprice]`定位带属性单元格、`a[href^="/book/"]`匹配详情页链接。学生动手完成:提取书名、作者、价格、成色、发布时间五字段,存入`list[dict]`,用`pandas.DataFrame.to_csv('books_raw.csv',index=False,encoding='utf8sig')`落盘。强调`utf8sig`解决Excel打开中文乱码、`timeout=10`防止死锁、`HEADERS`轮换策略。【探究三:分页递归与终止条件·10分钟】分析演示站点分页规律:`/list?page=1`至`/list?page=50`,末页“下一页”按钮消失且`tbody`为空。引导学生设计通用分页函数:```defcrawl_all_pages(base_url,max_pages=100):forpageinrange(1,max_pages+1):url=f"{base_url}?page={page}"resp=fetch_with_retry(url)ifnotrespornotparse_page(resp):break空页面或解析失败即终止time.sleep(random.uniform(1,3))礼貌延迟```引入`tenacity`装饰器实现指数退避重试:```@retry(stop=stop_after_attempt(3),wait=wait_exponential(multiplier=1,min=2,max=10),retry=retry_if_exception_type((RequestException,Timeout)))deffetch_with_retry(url):...```学生运行脚本,观察控制台日志输出,体会“礼貌采集”与“暴力采集”在服务器日志中的差异。【小结与预习·3分钟】梳理本节知识图谱:HTTP协议→Requests封装→HTML解析→选择器定位→分页逻辑→持久化存储→异常重试。布置预习:阅读演示站点`robots.txt`,思考`Disallow:/api/``/user/``/admin/`对采集范围的限制;安装Postman,尝试直接调用`/api/v1/books?page=1&size=20`接口,对比HTML解析与API直连的数据结构差异。课时二:反爬攻防实战与动态数据获取(45分钟)【情境升级·5分钟】演示站点开启“反爬模式B”:启用UserAgent黑名单、IP每分钟30次限流、详情页价格字段采用自定义字体映射(`&xe621;`对应数字`5`)。学生运行上节课脚本,集体遭遇403Forbidden、数据缺失、价格乱码三重打击。教师抛出挑战:“面对不断升级的反爬策略,我们该如何建立可持续的采集体系?”【攻关一:伪装身份与代理池·12分钟】讲解UserAgent池构建:从`fake_useragent`动态获取或维护本地`ua_list.txt`(含Chrome/Edge/Firefox/Safari最新版在Windows/macOS/Linux/Android/iOS的真实UA)。代理池方案:免费代理API(如`xy/get?key=xxx`)定时校验可用性(`requests.get('/ip',proxies=proxy,timeout=5)`),存入Redis列表,采集时随机抽取。代码片段:```PROXY_API="/proxy/get"defget_valid_proxy():whileTrue:proxy=requests.get(PROXY_API).json()['proxy']iftest_proxy(proxy):returnproxy```学生实操:接入UA轮换与代理池,再次请求演示站点,观察成功率提升至80%以上,但价字段仍显示方块字符。【攻关二:字体反爬破解·15分钟】演示字体反爬原理:服务器生成唯一WOFF/WOFF2字体文件,将数字09映射为私有区Unicode(E000F8FF),CSS`@fontface`引入,HTML中价格显示为`<spanclass="price">&xe621;&xe635;&xe618;</span>`。破解路径:1)正则提取CSS中`url('font.woff2')`字体文件;2)`fonttools.ttLib.TTFont`解析`cmap`表获取`uniXXXX`→glyph名映射;3)对比标准字体(如MicrosoftYaHei)同glyph名的轮廓坐标,建立glyph名→数字映射表;4)替换HTML实体引用还原真实价格。提供核心解码函数框架,学生完成关键映射逻辑填空,运行验证价格还原准确率100%。【攻关三:动态渲染数据的两种范式·10分钟】对比演示:打开演示站点“价格走势图”页面,右键查看网页源代码无图表数据,开发者工具Network筛选XHR发现`/api/v1/price/trend?book_id=123`返回JSON数组。方案A:Selenium/Playwright驱动无头浏览器等待渲染完毕再提取(资源重、启动慢、难并发)。方案B:直接调用内部API(轻量、高速、易并发),但需处理签名参数(如`sign=md5(book_id+timestamp+secret)`)。引导学生分析JS混淆代码(提供美化后源码),定位签名生成函数,用`execjs`或Python原生`hashlib`复现签名算法。学生编写`get_price_trend(book_id)`函数,实现动态数据零浏览器采集。【工程化重构·3分钟】指导学生将前三课时代码重构为模块化结构:```scraper/├──config.yaml目标站点、选择器、代理、限流参数├──core/│├──fetcher.py请求层:UA池、代理池、重试、限流│├──parser.py解析层:选择器配置驱动、字体解码插件│└──storage.py存储层:CSV/JSON/SQLite统一接口├──tasks/│└──bookmart.py业务层:分页、详情页、价格走势串联├──utils/│├──font_decoder.py│└──sign_cracker.py└──main.py入口:参数解析、日志初始化、任务调度```强调配置与代码分离、单一职责原则、依赖注入带来的可测试性与可维护性。课时三:API标准化采集与物理感知采集拓展(45分钟)【认知拓宽·8分钟】对比网页采集与API采集:前者脆弱依赖前端结构,后者基于契约稳定;前者常受反爬干扰,后者受限于频次配额、鉴权机制、数据新鲜度。展示三类典型API:RESTful(高德地理编码、和风天气)、GraphQL(GitHubAPIv4)、WebSocket(股票实时行情)。讲解OAuth2.0授权码模式流程:重定向授权→换取access_token→携带BearerToken请求资源→刷新token。学生实操:申请高德开放平台Key,调用`/v3/geocode/geo?address=广州市天河区华强路1号&key=YOUR_KEY`,解析JSON提取`location`、`formatted_address`、`addressponent`,写入SQLite表`poi(name,lon,lat,province,city,district)`。【传感器采集实战·20分钟】硬件套件:树莓派PicoW+BME280温湿压传感器+MicroPython固件。教师演示:ThonnyIDE连接Pico,烧录`main.py`:```frommachineimportI2C,Pinfrombme280importBME280importurequests,ujson,time,networkwlan=network.WLAN(network.STA_IF)wlan.active(True)wlan.connect('Lab_WiFi','password123')whilenotwlan.isconnected():time.sleep(1)i2c=I2C(0,scl=Pin(1),sda=Pin(0),freq=40000)bme=BME280(i2c=i2c)ENDPOINT="/api/v1/sensor/ingest"DEVICE_ID="pico001"whileTrue:t,p,h=bme.read_pensated_data()payload={"device_id":DEVICE_ID,"temperature":t/100,"pressure":p/25600,"humidity":h/1024,"ts":time.time()}try:urequests.post(ENDPOINT,json=payload,timeout=5).close()exceptExceptionase:print("Uploadfailed:",e)time.sleep(300)5分钟上报一次```学生分组烧录,观察服务端InfluxDB+Grafana仪表盘实时绘制温湿度曲线。讨论:物联网采集与Web采集在数据时效性、网络可靠性、功耗约束、边缘计算预处理上的本质差异。【多源融合小项目·15分钟】任务:“为校园二手书交易增加‘卖家地理位置热力图’功能。”技术路线:1)采集卖家发帖页中`datalocation="天河区华强路"`字段;2)调用高德地理编码API批量转经纬度(缓存结果避免重复调用);3)前端ECharts热力图渲染。学生设计`LocationEnricher`类,实现`geocode_with_cache(address)`,集成进`bookmart.py`管道,生成`books_geo.csv`。体会多数据源异构融合中的实体链接、字段映射、质量校验挑战。课时四:合规性审计、伦理辩论与迁移应用(45分钟)【法律条文进工程清单·12分钟】逐条拆解《个人信息保护法》对采集行为的约束:第13条“知情同意”→采集前必须检查隐私政策是否授权爬虫抓取;第14条“最小必要”→字段白名单机制,严禁`SELECT`式全量抓取;第27条“境外提供”→数据不得违规出境;第28条“安全义务”→传输加密、存储加密、访问控制、审计日志四项技术措施落地。配合《数据安全法》第21条“分级保护”、第22条“风险评估”、第31条“出境安全评估”,制定《数据采集合规自查清单v1.0》(见教案包`checklist.md`),包含27项可勾选检查点,如:•[]已阅读并存档目标站点`robots.txt`、`TermsofService`、`PrivacyPolicy`•[]采集字段经隐私影响评估(PIA),无身份证、手机、人脸、定位等敏感字段•[]请求频率≤站点公开限流阈值的50%,已实施指数退避与429处理•[]已配置代理IP白名单,避免使用云厂商IP段触发风控•[]数据落盘前完成脱敏(手机中四位掩码、姓名姓氏保留)、加密存储(AES256GCM)•[]采集脚本、日志、数据文件纳入版本管理,操作留痕可追溯【案例复盘与辩论·20分钟】分组研讨三个真实判例改编场景:案例一:某毕业生编写脚本采集某招聘网站200万简历简历,提取姓名、手机、期望薪资,售予猎头公司获利8万元。法院判决:构成侵犯公民个人信息罪,判刑三年六个月,罚金十万元。辩题:“简历系用户主动公开,采集行为是否构成犯罪?”正方:公开≠授权商业转售,超出用户合理预期。反方:技术手段获取公开信息不应刑事化。教师引导:关键在于“非法获取”“买卖牟利”“数量巨大”三要素并存,合规采集必须止步于“个人学术研究、非商业用途、最小必要、不转售”。案例二:某科技公司通过逆向APP签名算法,绕过加密接口采集竞品商品价格2000万条,用于动态定价。法院判决:构成不正当竞争,赔偿150万元。辩题:“价格属于公开商业信息,高频采集是否构成不正当竞争?”核心争点:是否超越`robots.txt`授权、是否实施技术手段绕过反爬措施、是否造成服务器负载过重影响正常运营。教师总结:商业采集需获得书面授权或购买数据服务,技术绕过反爬措施即触犯《反不正当竞争法》第12条“技术手段破坏技术措施”。案例三:某研究团队采集微博公开评论100万条训练情感分析模型,开源模型与脱敏数据集。辩题:“学术研究目的采集公开评论,是否豁免合规义务?”教师引用《个人信息保护法》第13条第1款第6项“为公共利益实施新闻报道、舆论监督等行为,在合理范围内处理个人信息”及第27条“学术研究机构处理个人信息应当进行安全评估”,明确:学术豁免不等于免责,仍需完成备案、脱敏、最小化、不公开原始数据。【迁移应用设计·10分钟】发布期末项目挑战赛主题(任选一组,两周完成):A组《校园食堂菜品价格与营养指数监测系统》:采集食堂公众号菜单、调用营养成分API、传感器监测剩餐重量、生成周报推送微信服务号。B组《区域二手房成交周期与挂牌价偏差分析》:采集贝壳/链家成交记录、调用高德通勤时间API、构建特征工程预测成交周期、Tableau仪表盘展示。C组《开源项目依赖库安全漏洞溯源平台》:调用GitHubAPI采集依赖图、对接NVD/CNVD漏洞库、构建知识图谱、生成SBOM合规报告。要求:提交技术方案文档(含合规自查清单打勾截图)、模块化代码仓库、演示视频、复盘总结。评分维度:功能完备性30%、工程规范性20%、合规落地度25%、创新迁移度15%、汇报答辩10%。七、教学评价与反思机制过程性评价(60%):每课时结束发放《采集日志自评表》,学生记录:请求成功率、异常类型分布、解析准确率、存储耗时、合规检查项通过数。教师依据日志与代码提交记录(Gitmit历史)评分,重点考察防御性编程习惯(重试、熔断、降级、监控)与重构迭代痕迹。终结性评价(40%):期末项目答辩+合规审计笔试。笔试含:给定某站点`robots.txt`与HTML片段,判断可采集范围并编写选择器;分析某反爬案例代码片段,指出法律风险并给出合规改写方案;设计某物联网场景采集方案(断网缓存、功耗优化、数据完整性校验)。反思改进机制:每学期末召开“采集技术复盘会”

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论