本赛项包括“网络爬虫”、“数据清洗”、“数据分析与可视化”、“机器学习”4个竞赛任务,各任务分值分别为15分、30分、35分、20分,本赛项满分为100分。
二、注意事项
1.请根据大赛所提供的竞赛环境,检查所列的硬件设备、软件清单、材料清单是否齐全,计算机设备是否能正常。
2.竞赛结束前,在竞赛平台提供的虚拟机中,根据赛题将各试题代码进行完善整合,并运行;除了编写文档中提及到的函数,选手也可根据需要自定义函数实现功能。在竞赛平台左侧的答题区进行答题,并根据题目对运行代码及结果进行截图。
3.竞赛结束时,请将答题区的答题报告进行提交操作,答题报告在竞赛结束前可重复提交;未提交答题报告一律按0分处理。
4.选手进入赛场严禁携带移动存储器材,严禁携带手机等通讯工具,违者取消竞赛资格。
5.在竞赛期间,选手扰乱赛场秩序,干扰裁判正常工作扣10分,情节严重者,经执委会批准,由裁判长宣布,取消竞赛资格。
1.PC机:系统已安装Python相关环境、MySQL数据库、用户名密码分别为:root/123456。
2.根据竞赛任务书说明,从竞赛平台虚拟机桌面获取项目工程代码包。桌面的工程代码可以直接使用虚拟机中的Pycharm导入、编译、运行和发布。
1.Python编程语言及相关开发环境(Python、PyCharm)
2.Web框架(Django)
3.Python爬虫组件(Requests、lxml、BeautifulSoup)
4.Python数据分析组件(NumPy、Pandas)
5.Python可视化组件(Matplotlib、Pyecharts)
6.Python机器学习组件(Scikit_Learn)
第1题:抓取天气数据(15分)
【任务说明】
互联网中的数据是海量的,通过人力操作进行数据采集低效繁琐,如何高效地获取数据源成为首要问题。本项目使用网络爬虫技术对数据信息进行采集,从“天气信息查询网站”中抓取天气数据,并将数据进行存储。
【任务要求】
在“TianTq”项目中的“app1”应用下的“spider”包中存在crawl_tq.py文件,编写该文件用于从“天气信息查询网站”中抓取天气数据,该网站中包含青岛、开封、苏州、扬州、烟台、丽江、桂林、三亚、厦门、大理共10个城市的历史天气数据。
从网站中抓取10个城市的每日天气数据并分别保存到CSV文件中,CSV文件存储到“TianTq”项目中的【app1/spider/day_data/】目录下,若目录不存在,则需自行创建目录。
抓取的每日天气数据表字段见表1。
表1:每日天气数据说明表
| 表名 |
列名 |
| 城市名_day.csv (如“青岛_day.csv”) |
城市、日期、最高气温、最低气温、天气、风向 |
【操作说明】
(1)使用虚拟机中的谷歌浏览器访问“天气信息查询网站”,网站访问地址为【http://127.0.0.1:5000】,网站首页效果图如下:
| 图1:“天气信息查询网站”首页
|
(2)点击城市标签跳转到天气历史记录页面。以“青岛”为例,“青岛历史天气”页面展示如下图:
| 图2:“青岛历史天气”页面
|
(3)使用PyCharm打开桌面上的“TianTq”项目进行编码。
注意:实现功能后将结果截图粘贴到答题报告相应区域。
第2题:清洗日表数据(30分)
【任务说明】
本项目用到的原始数据存储在day.csv文件中,该文件中包含了多个城市2011年1月1日至2022年4月30日的天气数据。原始数据中存在脏数据,不能直接用于后续数据分析,现需要对该表数据进行清洗操作,并将清洗之后的数据进行保存。
【任务要求】
在“TianTq”项目中的“app1”应用下的“data_clean”包中存在clean.py文件,编写该文件中的deal_day_data()函数用于实现日表数据清洗主体逻辑;日表数据day.csv文件存放在“TianTq”项目的【app1/data/】目录。
day.csv数据表中包含字段见表2。
表2:日表数据字段
| 字段 |
字段含义 |
| id |
id编号 |
| city |
城市名 |
| date_week |
日期及星期 |
| hightest_tem |
最高温度 |




4366

被折叠的 条评论
为什么被折叠?



