从数据中看天气变迁:Python获取历史天气数据

news2024/11/24 12:40:28

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

需要知识点 :

  • 动态数据抓包

  • requests发送请求

  • 结构化+非结构化数据解析

开发环境 :

  • python 3.8 运行代码

  • pycharm 2022.3.2 辅助敲代码 专业版

  • requests 发送请求 pip install requests

  • parsel 解析数据 pip install parsel

第三方模块安装方法:

win + R 输入cmd 输入安装命令 pip install 模块名

(如果你觉得安装速度比较慢, 你可以切换国内镜像源)


👇 👇 👇 更多精彩机密、教程,尽在下方,赶紧点击了解吧~

素材、视频教程、完整代码、插件安装教程我都准备好了,直接在文末名片自取就可


需求 :

  1. python代码去访问这个数据来源

  2. 将里面的我们所需要的天气信息提取出来

    所有的数据都在tr里面

  3. 保存天气信息

  4. 不同月份采集 / 年份 / 城市

代码展示

import requests     # 导入用来访问网站的库 第三方库
import parsel       # 第三方库 你的python环境 得安装好了
import csv          # 内置库 不需要安装

# 新建一个csv表格文件
f = open('tianqi.csv', mode='a', encoding='utf-8', newline='')
# 使用csv写入数据
csv_writer = csv.writer(f)
csv_writer.writerow(["日期", "最高温度", "最低温度", "天气", "风向", "城市"])

city_list = [54511, 58362, 59287, 59493, 58457]
for city in city_list:
    city_name = ""
    if city == 54511:
        city_name = "北京"
    elif city == 58362:
        city_name = "上海"
    elif city == 59287:
        city_name = "广州"
    elif city == 59493:
        city_name = "深圳"
    elif city == 58457:
        city_name = "杭州"
    for year in range(2013, 2023):
        for month in range(1, 13):
            # 1. 发送请求
            源码、解答、教程、资料加V:qian97378免费领
            url = f"https://****/Pc/GetHistory?areaInfo%5BareaId%5D=54511&areaInfo%5BareaType%5D=2&date%5Byear%5D={year}&date%5Bmonth%5D={month}"
            response = requests.get(url=url)
            # 2. 获取数据
            json_data = response.json()
            html_data = json_data['data']
            # 网页代码
            # print(html_data)
            select = parsel.Selector(html_data)
            trs = select.css('tr')
            # 什么都不会, 什么都想做?
            # 抱有这种心态一定是做不好的
            # 爬虫是可见即可爬 不能破解 也不准破解
            for tr in trs[1:]:
                tds = tr.css('td::text').getall()
                tds.append(city_name)
                print(tds)
                csv_writer.writerow(tds)

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/745072.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

cuda中radix_sort

背景 radix_sort排序是一种经典排序,在gpu上都有对其进行支持,这里主要参考cub中的实现,简单介绍一种单block的情形, 本文只适合看过源码但是没有看懂的同学。 流程 在second step中完全实在ScanCounters()函数中,具体分为upswe…

怎样将视频中的音频提取出来? 分享三个方法!

在处理视频时,有时我们需要将视频中的音频提取出来,可能是为了编辑或处理音频,或者仅仅是想保存音频本身。无论是出于什么目的,以下是三种简单的方法来提取视频中的音频: 方法一:修改文件后缀 这是一种简…

从CTAN下载缺少的包

1、打开CTAN: Comprehensive TeX Archive Networkhttps://ctan.org/ 2、在搜索栏中输入包名,回车 3、点击Package tabularray 4、点击Sources 附: Index of /CTAN/systems/texlive/Images/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

奥威BI-金蝶云星空SaaS版一站式平台:对接数据、做分析

金蝶云星空和BI大数据分析平台都在企业数字化转型中扮演了重要的角色,为企业提供了全面的数字化解决方案和数据分析功能,两者强强联合不仅能提高部署效率,更能增强数据分析、数据可视化效果,帮助企业更好地适应市场变化和用户需求…

向量数据库Faiss的搭建与使用

向量数据库Faiss是Facebook AI研究院开发的一种高效的相似性搜索和聚类的库。它能够快速处理大规模数据,并且支持在高维空间中进行相似性搜索。本文将介绍如何搭建Faiss环境并提供一个简单的使用示例。 Faiss的安装 首先,我们需要在我们的系统上安装Fai…

方便的记事本app有哪些 快捷方便的生活记事软件推荐

生活中很多时候都需要记事,比如去超市要买的物品清单,旅行时遇到的好看的风景、有趣的事情,以及脑海中不经意间产生的灵感、想法或思考感悟等,都可以随手用记事App软件记录下来,以便后续查看。那方便的记事本app有哪些…

飞行动力学 - 第7节-part2-单发失效的起飞性能 之 基础点摘要

飞行动力学 - 第7节-part2-单发失效的起飞性能 之 基础点摘要 1. 单发失效2. 平衡场长3. 参考资料 1. 单发失效 前面我还在说呢,如果单发失效,那过了决策速度不就听天由命了嘛。 果然,这里就提到了一个开伞的问题,不过如果是塞斯…

Origin画科研折线图,柱状图,双Y轴折线图绘图方法

一、数据表格 1.依次点击:文件->新建->工作表:填写数据 2.数据表横纵坐标含义: 长名称:表示这一列的名称,绘图时会自动显示在图的标签栏上单位:这一列值的单位函数:可以添加一下函数表…

RNN、LSTM、Seq2Seq

目录 时间序列表示梯度弥散和梯度爆炸RNN(循环神经网络)LSTMSeq2SeqELMo 时间序列表示 核心是加入历史信息去预测下一步骤 在NLP中,序列维度一般是这个样子:[b,seq_len,feature_len] b个句子,每个句子seq_len个单词,…

【python】Flask的基本应用

目录 一、介绍 二、与Django相比 三、基本使用 3.1入门案例: 3.2路由定义 3.3变量路由 3.4渲染模块 3.5重定向 3.6Flask返回json数据 3.7Flask模板的使用 一、介绍 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Wer…

如何通过会员系统实现线上线下贯通

​蚓链会员系统有一个整合的营销概念,优化线上和线下会员的投入比例,让消费者在每一个购物场景都能够获得满意的消费体验,大大的提升会员的留存和行为习惯养成,同时还能实现销售额与客户结构的提升。并将线上和线下的会员数据进行…

uni-app直播开发教程

第三方平台选型:腾讯、阿里、即构、声网 由于即构直播平台支持uni-app故本文章选用的是即构sdk版讲解 一、效果 二、sdk集成 1、 首先注册即构平台账号,然后对照即构官网一步步集成 主要分为sdk插件集成与JS 封装层集成这两部分,具体步骤请…

SLAM算法知识荟萃

文章目录 SLAM自动驾驶八股四元数在表示空间旋转时的优势是什么?介绍自动驾驶系统介绍回环检测介绍词袋模型 手撕对极约束使用OpenCV找到四边形的边界介绍卡尔曼滤波推导卡尔曼增益 介绍PnPPnP求解最少需要几个点PnP的误差来源 求解线性方程 AxbSVD和QR方法哪个快介…

The 2022 ICPC Asia Xian Regional Contest(C/E/F/G/J/L)

原题链接:Dashboard - The 2022 ICPC Asia Xian Regional Contest - Codeforces 目录 J. Strange Sum F. Hotel C. Clone Ranran G. Perfect Word E. Find Maximum L. Tree J. Strange Sum 题意:思路:当我们选择in时,我们则可以…

Django_获取api接口的传参

目录 当参数为form-data 或者x-www-form-urlencoded类型时,使用request.POST获取到参数 当参数为raw类型时,使用request.body获取到参数,获取的参数需要经过处理才能使用 源码等资料获取方法 当参数为form-data 或者x-www-form-urlencoded…

UE4 关闭steamvr自启动

在我们打开项目时,如果安装过steamvr会自动启动,因为steamvr插件是默认启用的,所以把引擎目录下的steamvr插件默认启动改为false就可以了 用记事本打开SteamVR.uplugin文件 把true改成false

Redshift有哪些硬件要求?不同项目的电脑配置推荐

当谈到使用 Redshift 这样的软件时,项目类型有很多种——从简单的低多边形资产到大片的整个城市景观。很难推荐一种适合所有需求的硬件配置。 因此,我们将介绍 Redshift 的一些常见项目类型,为每个特定项目级别提供硬件建议。通过将硬件与您的…

互联网医院平台定制|互联网医疗平台开发

互联网医院系统是指通过互联网技术与医疗服务相结合的一种新型医疗模式。相比传统医院,互联网医院系统具有许多功能优势,为患者和医生提供了更便捷、高效的医疗服务。以下是互联网医院系统的一些功能优势:   在线挂号与预约:互联…

Tomcat关闭日志输出

一般在部署Tomcat后,运行久了,catalina.out文件会越来越大,对系统的稳定造成了一定的影响。可通过修改conf/logging.properties日志配置文件来屏蔽掉这部分的日志信息。那么Tomcat怎么关闭日志输出 一、 linux 系统 1、直接修改catalina.sh…

虚拟化容器化与docker

虚拟化容器化与docker 基本概念虚拟化分类虚拟化实现主机虚拟化实现容器虚拟化实现命名空间namespace空间隔离 控制组群cgroup资源隔离 LXC(Linux Container) docker与虚拟机 基本概念 物理机: 实际的服务器或者计算机。相对于虚拟机而言的对实体计算机的称呼。物理…