赞
踩
博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久,选择我们就是选择放心、选择安心毕业✌感兴趣的可以先收藏起来,点赞、关注不迷路✌
毕业设计:2023-2024年计算机毕业设计1000套(建议收藏)
毕业设计:2023-2024年最新最全计算机专业毕业设计选题汇总
技术栈:
Python语言、MySQL数据库、Flask框架、Echarts可视化、中国天气网数据、requests爬虫技术、LayUI框架、HTML
(1)天气气象数据可视化大屏
(2)气象数据
(3)后台控制界面
(4)爬虫日志
(5)注册登录界面
(6)Python爬虫程序
随着科技技术的不断发展,人民物质生活质量不断提高,我们越来越关注身边的气象、空气等地理环境。对于普通居民我们会选择合适的气象进行出游,提高精神层面的生活质量;对于企业会关注气象变换状况,来定制相关的生产计划,来提高企业生产效率并降低生成过程中由气象造成的风险损失。从社会角度我们不难看出,气象时时刻刻影响我们的规划和生活,因此我们开发一套中国气象数据可视化系统,更加直观的呈现气象状况,是有必要的。
中国气象质量大数据展示与分析系统,通过使用python爬虫技术对中国气象数据进行实时获取,然后利用相关数据清洗以及数据库处理技术存入数据库,再通过Python Web框架也就是Flask框架进线系统后台数据接口开发,通过Echarts技术进行数据分析可视化展示以及通过LayUI前端技术开发后台数据管理页面从而来完成我们最终的中国气象数据可视化系统。
本文主要通过研究背景,对项目意义进线分析讨论;通过技术分析对项目技术架构选型进行敲定,根据系统需求分析和可行性分析来确定系统的主要功能结构。最后通过系统概要设计、数据库设计将设计的功能进行初步的建模。通过系统设计与实现以及测试阐述系统开发内容以及测试系统功能的正确性。从而最终完成系统的设计与实现。
关键词:数据可视化;Python;Echart;Flask;爬虫;气象
步骤1:设置请求头 self.baseUrl = r"http://d1.weather.com.cn/sk_2d/" self.headers = {'Accept': "*/*", 'Accept-Encoding': 'gzip, deflate', 'Accept-Language': 'keep-alive', 'Connection': '', 'Cookie': 'f_city=北京|101010100|; Hm_lvt_080dabacb001ad3dc8b9b9049b36d43b=1637305568,1637734650,1639644011,1639710627; Hm_lpvt_080dabacb001ad3dc8b9b9049b36d43b=1639723697'.encode("utf-8").decode("latin1"), 'Host': 'd1.weather.com.cn', 'Referer': 'http://www.weather.com.cn/', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36', } self.loadList = [] self.cityList = [] # 格式为:列表里面的子列表都是一个省份的所有城市,子列表里所有元素都是字典,每个字典有两项 self.cityDict = {} self.result = xlwt.Workbook(encoding='utf-8', style_compression=0) self.sheet = self.result.add_sheet('result', cell_overwrite_ok=True) self.cityRow = 0 self.totalGet = 0 步骤2:发送请求 self.totalGet = self.totalGet + 1 self.sheet.write(self.cityRow, 0, city) # 写当前城市名 PageUrl = self.baseUrl + id + ".html?_" + str(int(time.time() * 1000)) response = requests.get(PageUrl, headers=self.headers, allow_redirects=False) response.encoding = "utf-8" self.htmlResult = response.text 步骤3:解析数据并保存到数据库 data = json.loads(self.htmlResult.replace("var dataSK=", "")) nameen = data["nameen"] # 城市拼音 cityname = data["cityname"] # 城市名称 temp = data["temp"] # 当前温度 WD = data["WD"] # 风向 WS = data["WS"].replace("级", "") # 风力 wse = data["wse"].replace("km/h", "") # 风速 sd = data["sd"].replace("%", "") # 湿度 weather = data["weather"] # 天气 record_date = data["date"] # 时间 record_time = data["time"] # 时分 aqi = data["aqi"] # 时分 judge_sql = "select count(id) from `weather` where nameen = '" + nameen + "' and cityname='" + cityname + "' and record_date='" + record_date + "' and record_time='" + record_time + "'"; sql = "INSERT INTO `weather` VALUES (null, '" + nameen + "', '" + cityname + "', '" + record_date + "', '" + record_time + "', " + str( temp) + ", '" + WD + "', " + WS + ", " + wse + ", " + sd + ", '" + weather + "', " + aqi + ", '" + time.strftime( "%Y-%m-%d %H:%M:%S", time.localtime()) + "',0);" i = query(judge_sql)[0][0] if int(i) > 0: print("跳过:", judge_sql) continue update_sql = "update `weather` set is_old=1 where nameen = '" + nameen + "' and cityname='" + cityname + "'"; print("插入:", sql) query(update_sql) query(sql)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。