python结合API实现即时天气信息


Posted in Python onJanuary 19, 2016

python结合API实现即时天气信息

import urllib.request
import urllib.parse
import json
 
"""
 利用“最美天气”抓取即时天气情况
 http://www.zuimeitianqi.com/
 
"""
class ZuiMei():
 def __init__(self):
  self.url = 'http://www.zuimeitianqi.com/zuimei/queryWeather'
  self.headers = {}
  self.headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36'
  # 部分城市的id信息
  self.cities = {}
  self.cities['成都'] ='01012703'
  self.cities['杭州'] = '01013401'
  self.cities['深圳'] = '01010715'
  self.cities['广州'] = '01010704'
  self.cities['上海'] = '01012601'
  self.cities['北京'] = '01010101'
  # Form Data
  self.data = {}
  self.city = '北京'
  
 def query(self,city='北京'):
  if city not in self.cities:
   print('暂时不支持当前城市')
   return
  self.city = city
  data = urllib.parse.urlencode({'cityCode':self.cities[self.city]}).encode('utf-8')
  req = urllib.request.Request(self.url,data,self.headers)
  response = urllib.request.urlopen(req)
 
  html = response.read().decode('utf-8')
  # 解析json数据并打印结果
  self.json_parse(html)
 
 def json_parse(self,html):
  target = json.loads(html)
  high_temp = target['data'][0]['actual']['high']
  low_temp = target['data'][0]['actual']['low']
  current_temp = target['data'][0]['actual']['tmp']
  today_wea = target['data'][0]['actual']['wea']
  air_desc = target['data'][0]['actual']['desc']
  # 上海 6~-2°C 现在温度 1°C 湿度:53 空气质量不好,注意防霾。 
  print('%s: %s~%s°C 现在温度 %s°C 湿度:%s %s'%(self.city,high_temp,low_temp,current_temp,today_wea,air_desc))

if __name__ == '__main__':
 zuimei = ZuiMei()
 zuimei.query('广州')

效果演示:

python结合API实现即时天气信息

Python 相关文章推荐
Python、Javascript中的闭包比较
Feb 04 Python
Python解惑之整数比较详解
Apr 24 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
Oct 29 Python
Python语言描述随机梯度下降法
Jan 04 Python
python的Tqdm模块的使用
Jan 10 Python
对Python中DataFrame按照行遍历的方法
Apr 08 Python
python 实时得到cpu和内存的使用情况方法
Jun 11 Python
python简单验证码识别的实现方法
May 10 Python
使用pandas的box_plot去除异常值
Dec 10 Python
Django Xadmin多对多字段过滤实例
Apr 07 Python
Python3读写ini配置文件的示例
Nov 06 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
Dec 01 Python
Python+django实现文件下载
Jan 17 #Python
Python+django实现文件上传
Jan 17 #Python
初步剖析C语言编程中的结构体
Jan 16 #Python
举例讲解Python设计模式编程的代理模式与抽象工厂模式
Jan 16 #Python
python实现发送和获取手机短信验证码
Jan 15 #Python
详解python单例模式与metaclass
Jan 15 #Python
理解python正则表达式
Jan 15 #Python
You might like
html读出文本文件内容
2007/01/22 Javascript
EXT中xtype的含义分析
2010/01/07 Javascript
jQuery的图片滑块焦点图插件整理推荐
2014/12/07 Javascript
jQuery中removeData()方法用法实例
2014/12/27 Javascript
javaScript中push函数用法实例分析
2015/06/08 Javascript
怎么通过onclick事件获取js函数返回值(代码少)
2015/07/28 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
如何判断Javascript对象是否存在的简单实例
2016/05/18 Javascript
Jquery基础之事件操作详解
2016/06/14 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
微信禁止下拉查看URL的处理方法
2017/09/28 Javascript
node 利用进程通信实现Cluster共享内存
2017/10/27 Javascript
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
layui实现图片虚拟路径上传,预览和删除的例子
2019/09/25 Javascript
vue中使用百度脑图kityminder-core二次开发的实现
2019/09/26 Javascript
JavaScript 判断数据类型的4种方法
2020/09/11 Javascript
[58:18]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Mineski
2018/03/30 DOTA
Django中的Model操作表的实现
2018/07/24 Python
使用Python抓取豆瓣影评数据的方法
2018/10/17 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
用openCV和Python 实现图片对比,并标识出不同点的方式
2019/12/19 Python
Vision Directa智利眼镜网:框架眼镜、隐形眼镜和名牌太阳眼镜
2016/11/23 全球购物
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
Exoticca英国:以最优惠的价格提供豪华异国情调旅行
2018/10/18 全球购物
农民入党思想汇报
2014/01/03 职场文书
成龙霸王洗发水广告词
2014/03/14 职场文书
老师对学生的评语
2014/04/18 职场文书
产品生产计划书
2014/05/07 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2015幼儿园庆元旦活动方案
2014/12/09 职场文书
给老婆的检讨书
2015/01/27 职场文书
工商行政处罚决定书
2015/06/24 职场文书
CSS+HTML 实现顶部导航栏功能
2021/08/30 HTML / CSS