课程设计 天气预报数据可视化开发

这篇具有很好参考价值的文章主要介绍了课程设计 天气预报数据可视化开发。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 问题需求分析

数据可视化开发是指将数据呈现为漂亮的统计图表,然后进一步发现数据中包含的规律以及隐藏的信息。数据可视化开发跟数据挖掘和大数据分析紧密相关,这些领域以及当下被热议的“深度学习”其最终的目标都是为了实现从过去的数据去对未来的状况进行分析和预测以及可视化展现。

天气数据是每个人基本都会关注的,具体到个人,主要是为了预防疾病,尤其是感冒,关注天气变化,加减衣服。而且很重要的一点是,如果要去外地,更要知道当地是什么天气情况,决定穿衣和携带的衣服。特别是突然下雨或者降温,加减衣服不当很容易生病。所以对其进行预测是很重要的

  • 数据处理

2.1 数据获取

在“getweather.py”文件中

采用requests.get()方法,请求网页,如果成功访问,则得到的是网页的所有字符串文本

添加了文字的输出让我们能直观地看到访问是否成功

def getHTMLtext(url):
    """请求获得网页内容"""
    try:
        r = requests.get(url, timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding  # 是中文正常显示
        print("访问成功")
        return r.text
    except:
        print("访问失败")
        return " "

主函数部分则是存好需要的链接,获取到需要的html文件方便后续使用

def main():
    """主函数"""
    print("武汉天气数据获取")
    url1 = 'http://www.weather.com.cn/weather/101200101.shtml'  # 7天天气中国天气网
    url2 = 'http://www.weather.com.cn/weather15d/101200101.shtml'  # 8-15天天气中国天气网
    url_m1 = 'http://www.tianqihoubao.com/lishi/wuhan/month/202201.html'
    url_m2 = 'http://www.tianqihoubao.com/lishi/wuhan/month/202202.html'
    url_m3 = 'http://www.tianqihoubao.com/lishi/wuhan/month/202203.html'
    url_m4 = 'http://www.tianqihoubao.com/lishi/wuhan/month/202204.html'
    url_m5 = 'http://www.tianqihoubao.com/lishi/wuhan/month/202205.html'  # 天气后报网2022年1~5月

    html1 = getHTMLtext(url1)
    data1, data1_7 = get_content(html1)  # 获得1-7天和当天的数据

    html2 = getHTMLtext(url2)
    data8_14 = get_content2(html2)  # 获得8-14天数据
    data14 = data1_7 + data8_14

2.2 数据预处理

因为天气预报7天,8-15天,天气后报三个网页的格式不同,所以需要写三个处理的函数。

   课程设计 天气预报数据可视化开发

 课程设计 天气预报数据可视化开发

课程设计 天气预报数据可视化开发

课程设计 天气预报数据可视化开发

天气预报部分

先建立一个列表储存数据,创建BeautifulSoup对象

def get_content(html):  # getHTMLtext返回的文件是此函数的参数
    """处理得到有用信息保存数据文件,1-7天和当天的数据"""
    final = []  # 初始化一个列表保存数据class为left-div里面找所有的div
    bs = BeautifulSoup(html, "html.parser")  # 创建BeautifulSoup对象
    body = bs.body

    使用网页的开发者工具找到找到需要的数据所在位置

当天的数据在'left-div'中,存在data2中

课程设计 天气预报数据可视化开发

data2 = body.find_all('div', {'class': 'left-div'})

首先爬取当天的数据

因为存放当天数据的div是第三个,所以取data2[2]中的文本课程设计 天气预报数据可视化开发

text = data2[2].find('script').string

# 移除改var data=将其变为json数据

text = text[text.index('=') + 1:-2]  # 移除改var data=将其变为json数据
    jd = json.loads(text)
    dayone = jd['od']['od2']  # 找到当天的数据
    final_day = []  # 存放当天的数据

将24小时的数据爬下来,存进final_day中(od是网页中的标签名)

count = 0
    for i in dayone:
        temp = []
        if count <= 23:
            temp.append(i['od21'])  # 添加时间
            temp.append(i['od22'])  # 添加当前时刻温度
            temp.append(i['od24'])  # 添加当前时刻风力方向
            temp.append(i['od25'])  # 添加当前时刻风级
            temp.append(i['od26'])  # 添加当前时刻降水量
            temp.append(i['od27'])  # 添加当前时刻相对湿度
            temp.append(i['od28'])  # 添加当前时刻控制质量
            # print(temp)
            final_day.append(temp)
        count = count + 1

下面爬7天的数据

可以看到7天的数据在id为“7d”的div中,存在data中课程设计 天气预报数据可视化开发

 # 下面爬取7天的数据
    ul = data.find('ul')  # ul 里是在data里找到第一个的ul标签
    li = ul.find_all('li')  # li 里是在ul里找到所有的li标签

并且存在ul和li标签里,所以使用一个循环来遍历每一天的数据,将每一项数据取出并进行预处理

具体在注释中文章来源地址https://www.toymoban.com/news/detail-488869.html

i = 0  # 控制爬取的天数
    for day in li:  # 遍历找到的每一个li
        if i < 7 and i > 0:
            # for i in range(7):
            temp = []  # 临时存放每天的数据
            date = day.find('h1').string  # 得到日期
            date = date[0:date.index('日') + 1]  # 为从开头到“日”在date总的索引号->取出日期号
            temp.append(date)  # append:在列表末尾添加新的对象

            inf = day.find_all('p')  # 找出li下面的p标签,提取第一个p标签的值,即天气
            temp.append(inf[0].string)  # temp后面加上inf第一项(第一个p)中的文本

            tem_low = i

到了这里,关于课程设计 天气预报数据可视化开发的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python福建福州天气预报数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(23)
  • python甘肃兰州天气预报数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月03日
    浏览(30)
  • python江苏南京天气预报数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(27)
  • python安徽合肥天气预报数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(29)
  • python河南郑州天气预报数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(27)
  • python江西南昌天气预报数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(28)
  • python浙江杭州天气预报数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(26)
  • python四川成都天气预报数据可视化大屏全屏系统设计与实现(django框架)

     博主介绍 :黄菊华老师《Vue.js入门与商城开发实战》《微信小程序商城开发》图书作者,CSDN博客专家,在线教育专家,CSDN钻石讲师;专注大学生毕业设计教育和辅导。 所有项目都配有从入门到精通的基础知识视频课程,免费 项目配有对应开发文档、开题报告、任务书、

    2024年02月04日
    浏览(35)
  • Flask+echarts爬取天气预报数据并实现可视化

    右键新建一个crawl.py文件,代码如下,将爬取到的数据存储到tianqi.txt文件中, 右键新建一个flask01.py的文件,对爬取到的数据进行读取,并转换为列表类型,传递给index.html页面,echarts的图表样例负责接收并渲染,代码如下, 在根目录下,新建一个名为templates目录,该目录名

    2024年02月11日
    浏览(29)
  • 记录--手把手教你Vue+ECharts+高德地图API实现天气预报数据可视化

    所谓数据可视化,我们可以理解为从宏观角度来看一眼就能看出来整个数据的占比,走向。对于数据可视化,很多互联网公司是很看重这一块的,包括大厂;就比如阿里的淘宝,双十一的时候往往就需要将消费者的一些数据通过图的形式展现出来。接下来我们就来实现一个天

    2024年02月07日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包