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 正则表达式 概述及常用字符
May 04 Python
解决nohup重定向python输出到文件不成功的问题
May 11 Python
wxPython的安装与使用教程
Aug 31 Python
在Python文件中指定Python解释器的方法
Feb 18 Python
Python3网络爬虫中的requests高级用法详解
Jun 18 Python
PyQt5 实现字体大小自适应分辨率的方法
Jun 18 Python
python  文件的基本操作 菜中菜功能的实例代码
Jul 17 Python
Pycharm连接远程服务器过程图解
Apr 30 Python
浅谈keras中的Merge层(实现层的相加、相减、相乘实例)
May 23 Python
浅谈Python中文件夹和python package包的区别
Jun 01 Python
python 在sql语句中使用%s,%d,%f说明
Jun 06 Python
Restful_framework视图组件代码实例解析
Nov 17 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 mysql索引问题
2008/06/07 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
PHP设计模式之装饰器(装饰者)模式(Decorator)入门与应用详解
2019/12/13 PHP
JavaScript 核心参考教程 内置对象
2009/10/13 Javascript
jQuery 学习第五课 Ajax 使用说明
2010/05/17 Javascript
Html中JS脚本执行顺序简单举例说明
2010/06/19 Javascript
JavaScript中的isXX系列是否继续使用的分析
2011/04/16 Javascript
JavaScript高级程序设计 客户端存储学习笔记
2011/09/10 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
简单实现异步编程promise模式
2015/07/31 Javascript
Bootstarp风格的toggle效果分享
2016/02/23 Javascript
javascript创建含数字字母的随机字符串方法总结
2016/08/01 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
浅谈jQuery hover(over, out)事件函数
2016/12/03 Javascript
使用travis-ci如何持续部署node.js应用详解
2017/07/30 Javascript
vue中component组件的props使用详解
2017/09/04 Javascript
vue检测对象和数组的变化分析
2018/06/30 Javascript
vue调用语音播放的方法
2019/09/27 Javascript
浅谈TypeScript的类型保护机制
2020/02/23 Javascript
通过实例解析JavaScript for in及for of区别
2020/06/15 Javascript
微信小程序实现列表滚动头部吸顶的示例代码
2020/07/12 Javascript
[42:36]DOTA2上海特级锦标赛B组败者赛 VG VS Spirit第二局
2016/02/26 DOTA
python strip() 函数和 split() 函数的详解及实例
2017/02/03 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
pytorch自定义初始化权重的方法
2019/08/17 Python
解决python运行启动报错问题
2020/06/01 Python
简述 Python 的类和对象
2020/08/21 Python
python实现发送带附件的邮件代码分享
2020/09/22 Python
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
Hello Molly美国:女性时尚在线
2019/08/26 全球购物
大学生职业规划论文
2014/01/11 职场文书
护士自我鉴定怎么写
2014/02/07 职场文书
教师先进个人材料
2014/12/17 职场文书
岁月神偷观后感
2015/06/11 职场文书
JS实现简单控制视频播放倍速的实例代码
2021/04/18 Javascript
JavaScript实现简单计时器
2021/06/22 Javascript