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/ 首先分析需求,移动端实现天 ...
随机推荐
- Guided Hacking DLL Injector 3.3
Guided Hacking DLL Injector 3.3 https://guidedhacking.com/resources/guided-hacking-dll-injector.4/ I ...
- Spring AOP设计
Spring IOC设计到的设计模式: 工厂模式,模板方法模式,单例模式 Spring AOP涉及到的设计模式: 工厂模式,代理模式 1.Spring AOP目标 将分散在程序各处的横切关注点剥离出来 ...
- CMU Database Systems - Parallel Execution
并发执行,主要为了增大吞吐,降低延迟,提高数据库的可用性 先区分一组概念,parallel和distributed的区别 总的来说,parallel是指在物理上很近的节点,比如本机的多个线程或进程,不 ...
- android studio: 对齐成员变量及链式方法
"File"-"Settings"-"Editor"-"Java"-"Wrapping and Braces& ...
- js中const,var,let区别与用法(转)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/qq_36784628/article/d ...
- Python之Pandas操作csv文件dataframe
# -*- coding: utf-8 -*- # author:baoshan import pandas as pd def main(): aqi_data = pd.read_csv('chi ...
- shell编程系列7--shell中常用的工具find、locate、which、whereis
shell编程系列7--shell中常用的工具find.locate.which.whereis .文件查找之find命令 语法格式:find [路径] [选项] [操作] 选项 -name 根据文件 ...
- 生成有目录的pdf
生成有目录的pdf 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://jingyan.baidu.com/article/ff411625c2153512e48237a ...
- 《Learning a Discriminative Feature Network for Semantic Segmentation》解读
旷世18年的CVPR,论文链接:https://arxiv.org/abs/1804.09337 Motivation:针对分割中的“类内不一致”和“类间一致性”的两大问题,设计了结合Smooth n ...
- Python - Django - 简单分页的实现
models.py: from django.db import models class Book(models.Model): title = models.CharField(max_lengt ...