python 使用API调用和风天气获取天气情况并保存
第一步、注册
注册免费API和阅读技术文档:
注册地址:https://console.heweather.com
注册完成后,激活登录后,新建应用 、新建key
KEY名称 密钥ID 密钥 类型
下载城市代码,另存为 china-city-list.csv
3-10天天气预报
接口介绍
最长10天天气预报数据,天气预报包含的数据:日出日落、月升月落、最高最低温度、天气白天和夜间状况、风力、风速、风向、相对湿度、大气压强、降水量、降水概率、露点温度、紫外线强度、能见度等数据
城市覆盖范围:全球
大客户可达14天,免费用户获得 3天预报数据,认证开发者可获得7天预报,付费用户可选 3-10天
请求URL
付费:https://api.heweather.net/s6/weather/forecast?parameters
免费:https://free-api.heweather.net/s6/weather/forecast?parameters
parameters代表请求参数,包括必选和可选参数。所有请求参数均使用&进行分隔,参数值存在中文或特殊字符的情况,需要对参数进行 url encode。
请求参数
参数 描述 选择 示例值
location 需要查询的城市或地区,可输入以下值:
1. 城市ID:城市列表
2. 经纬度格式:经度,纬度(经度在前纬度在后,英文,分隔,十进制格式,北纬东经为正,南纬西经为负
3. 城市名称,支持中英文和汉语拼音
4. 城市名称,上级城市 或 省 或 国家,英文,分隔,此方式可以在重名的情况下只获取想要的地区的天气数据,例如 西安,陕西
5. IP
6. 根据请求自动判断,根据用户的请求获取IP,通过 IP 定位并获取城市数据 必选 1. location=CN101010100
2. location=116.40,39.9
3. location=北京、 location=北京市、 location=beijing
4. location=朝阳,北京、 location=chaoyang,beijing
5. location=60.194.130.1
6. location=auto_ip
lang 多语言,可以不使用该参数,默认为简体中文
详见多语言参数 可选 lang=en
unit 单位选择,公制(m)或英制(i),默认为公制单位
详见度量衡单位参数 可选 unit=i
key 用户认证key,请参考如何获取你的KEY
支持数字签名方式进行认证,推荐使用 必选 key=xxxxxxxxxxxxxx
打开浏览器测试 OK
https://free-api.heweather.net/s6/weather/forecast?location=太原&key=XXXXXXXXXX
使用下面地址可以看到所有城市信息
https://cdn.heweather.com/china-city-list.txt
使用python调用
import requests
import time
import pandas as pd
url='https://cdn.heweather.com/china-city-list.txt'
strhtml = requests.get(url)
data = strhtml.text
data1 = data.split("\n")
for i in range(6): #因为前六行不需要,所以没有打印
data1.remove(data1[0])
df_weather = pd.DataFrame(columns = ['city_name','area_name','date','tmp_max']) #创建一个空的dataframe
for item in data1:
# print(item[2:13])
url = 'https://free-api.heweather.net/s6/weather/forecast?location='+item[2:13]+'&key=HE1904250910131710'
strhtml = requests.get(url)
time.sleep(1)
dic = strhtml.json()
# print(dic)
city_name=dic["HeWeather6"][0]["basic"]["parent_city"]
area_name = dic["HeWeather6"][0]["basic"]["location"]
for item in dic["HeWeather6"][0]["daily_forecast"]:
# print(city_name,area_name,item["date"],"最高气温",item["tmp_max"])
add_data = pd.Series({'city_name':city_name,'area_name':area_name,'date':item["date"],"tmp_max":item["tmp_max"]})
# ignore_index=True不能少
df_weather = df_weather.append(add_data, ignore_index=True)
path="D:\\python\\excel_export\\"
df_weather.to_excel(path+"weather"+".xls")
python 使用API调用和风天气获取天气情况并保存的更多相关文章
- API调用微信getWXACodeUnlimit()获取小程序码
微信文档地址:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/qr-code/getWXACodeUnlimit.html? ...
- 华为云的API调用实践(python版本)
一.结论: 1.华为云是符合openstack 社区的API,所以,以社区的API为准.社区API见下面的链接. https://developer.openstack.org/api-ref/net ...
- 阿里云 API调用实践(python语言)
1.结论:阿里云的SDK开发,其实就是远程调用API,python的代码就是一个外壳,核心是封装成一个http报文,利用json格式,进行RPC调用. 2.SDK调用API的套路如下: # -*- c ...
- Python面向对象 -- 继承和多态、获取对象信息、实例属性和类属性
继承和多态 继承的好处: 1,子类可以使用父类的全部功能 2,多态:当子类和父类都存在相同的方法时,子类的方法会覆盖父类的方法,即调用时会调用子类的方法.这就是继承的另一个好处:多态. 多态: 调用方 ...
- 高德地图API获取天气
1.建立行政区规划清单表 use edw; drop table if exists dim_prov_city_adcode; create table if not exists dim_prov ...
- JS调用腾讯接口获取天气
想做个直接通过JS获取某个城市的天气.本来想通过直接调用中国气象网的接口: http://www.weather.com.cn/weather/101070201.shtml,但是跨域问题一直无法解决 ...
- 雅虎天气API调用
雅虎天气API调用: 1.调用方法:http://weather.yahooapis.com/forecastrss?w=2502265&u=c,绿色字体为城市代号,u=c表示取摄氏度. 2. ...
- C#调用WebService获取天气信息
概述 本文使用C#开发Winform应用程序,通过调用<WebXml/>(URL:http://www.webxml.com.cn)的WebService服务WeatherWS来获取天气预 ...
- 关于实现手机端自动获取天气的demo
博主大二做的一个项目,当时很傻很天真,但是还是贴出来,希望能给大家一点帮助.欢迎转载哦!我的博客园地址:http://www.cnblogs.com/natureless/ 首先分析需求,移动端实现天 ...
随机推荐
- sass登陆页面实例
sass登陆页面实例 一.总结 一句话总结: sass使用非常方便:使用就是将sass转化为css引入,并且动态监听让sass转化为css,可以很方便的所见即所得 1.sass安装? npm就可以按照 ...
- TP-Link TL-WR941N Ver 5.1安装OPENWRT过程
昨天为了试验下adsl多拨刷OPENWRT成砖了,硬件是WR941N Ver 5.1,用的是在原厂固件下的web界面直刷openwrt-ar71xx-tl-wr941nd-v4-squashfs-fa ...
- Python flask模块接口开发学习总结
引言 Flask 是一个简单且十分强大的Python web 框架.它被称为微框架,“微”并不是意味着把整个Web应用放入到一个Python文件,微框架中的“微”是指Flask旨在保持代码简洁且易于扩 ...
- 数据结构---哈希表的C语言实现(闭散列)
原文地址:https://blog.csdn.net/weixin_40331034/article/details/79461705 构造一种存储结构,通过某种函数(hashFunc)使元素的存储位 ...
- win10 'make' 不是内部或外部命令
win10 解决“ 'g++' 不是内部或外部命令,也不是可运行的程序或批处理文件”的问题 https://www.jianshu.com/p/9bffbaf12bed windows下提示make不 ...
- python使用post请求发送图片并接受图片
图像读取编码与反编码: import requests import json import numpy as np import cv2 import base64 # 首先将图片读入 # 由于要发 ...
- nice -n 10 bash 和 chrt 10 bash 和 echo -17 > /proc/PID/oom_score_adj
进程优先级起作用的方式从发明以来基本没有什么变化,无论是只有一个cpu的时代,还是多核cpu时代,都是通过控制进程占用cpu时间的长短来实现的. 就是说在同一个调度周期中,优先级高的进程占用的时间长些 ...
- 小D课堂 - 零基础入门SpringBoot2.X到实战_第8节 数据库操作之整合Mybaties和事务讲解_32..SpringBoot2.x持久化数据方式介绍
笔记 1.SpringBoot2.x持久化数据方式介绍 简介:介绍近几年常用的访问数据库的方式和优缺点 1.原始java访问数据库 开发流程麻烦 ...
- [原][bigemap][globalmapper]通过bigemap下载全球30米DEM高程数据(手动下载)(下载全球高精度dom卫片、影像、等高线、矢量路网、POI、行政边界)
本文研究了bigemap下载高程数据的方式,但是严重不推荐使用这总手动方式,bigemap这个软件一次只能下载100M以内的高程数据,即使花钱,也不给你提供批量下载dem的方式!也有些其他更好的软件, ...
- C++11智能指针之std::unique_ptr
C++11智能指针之std::unique_ptr uniqut_ptr是一种对资源具有排他性拥有权的智能指针,即一个对象资源只能同时被一个unique_ptr指向. 一.初始化方式 通过new云 ...