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笔记(叁)继续学习
Oct 24 Python
跟老齐学Python之让人欢喜让人忧的迭代
Oct 02 Python
Django1.7+python 2.78+pycharm配置mysql数据库教程
Nov 18 Python
Python生成随机MAC地址
Mar 10 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 Python
Python实现多进程的四种方式
Feb 22 Python
python分割一个文本为多个文本的方法
Jul 22 Python
详解python中*号的用法
Oct 21 Python
怎么快速自学python
Jun 22 Python
python中的垃圾回收(GC)机制
Sep 21 Python
Python 删除List元素的三种方法remove、pop、del
Nov 16 Python
Python实现小黑屋游戏的完整实例
Jan 06 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
需要注意的几个PHP漏洞小结
2012/02/05 PHP
PHP实现更新中间关联表数据的两种方法
2014/09/01 PHP
php程序总是提示验证码输入有误解决方案
2015/01/07 PHP
正确的PHP匹配UTF-8中文的正则表达式
2015/05/13 PHP
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
JavaScript 保存数组到Cookie的代码
2010/04/14 Javascript
使用jQuery向asp.net Mvc传递复杂json数据-ModelBinder篇
2010/05/07 Javascript
深入理解JavaScript系列(35):设计模式之迭代器模式详解
2015/03/03 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
Angularjs的Controller间通信机制实例分析
2016/11/07 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
浅谈Angular的$q, defer, promise
2016/12/20 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
swiper插件自定义切换箭头按钮
2017/12/28 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
Vue实现todolist删除功能
2018/06/26 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
vue-openlayers实现地图坐标弹框效果
2020/09/24 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
python中常用检测字符串相关函数汇总
2015/04/15 Python
pip安装Python库时遇到的问题及解决方法
2017/11/23 Python
python3实现域名查询和whois查询功能
2018/06/21 Python
关于python之字典的嵌套,递归调用方法
2019/01/21 Python
python自定义函数实现最大值的输出方法
2019/07/09 Python
python十进制转二进制的详解
2020/02/07 Python
求职信内容考虑哪几点
2013/10/05 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
《穷人》教学反思
2014/04/08 职场文书
2014年财务部工作总结
2014/11/11 职场文书
高中美术教学反思
2016/02/17 职场文书
2019事业单位个人工作总结范文
2019/08/26 职场文书