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实现方法
Nov 18 Python
python提取页面内url列表的方法
May 25 Python
Python lxml模块安装教程
Jun 02 Python
老生常谈Python基础之字符编码
Jun 14 Python
Python程序退出方式小结
Dec 09 Python
对Python3中列表乘以某一个数的示例详解
Jul 20 Python
Django中URL的参数传递的实现
Aug 04 Python
pytorch获取vgg16-feature层输出的例子
Aug 20 Python
详解opencv中画圆circle函数和椭圆ellipse函数
Dec 27 Python
pytorch快速搭建神经网络_Sequential操作
Jun 17 Python
python中sys模块是做什么用的
Aug 16 Python
Python实现简单的俄罗斯方块游戏
Sep 25 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 引用文件技巧
2010/03/02 PHP
PHP中删除变量时unset()和null的区别分析
2011/01/27 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
PHP实现的分页类定义与用法示例
2017/07/05 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
PHP通过文件路径获取文件名的实例代码
2018/10/14 PHP
jquery中的 $("#jb51")与document.getElementById("jb51") 的区别
2011/07/26 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
javascript标签在页面中的位置探讨
2013/04/11 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
JavaScript实现刷新不重记的倒计时
2016/08/10 Javascript
浅谈Javascript事件对象
2017/02/05 Javascript
深入理解JavaScript 中的匿名函数((function() {})();)与变量的作用域
2018/08/28 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
详解微信小程序获取当前时间及日期的方法
2019/04/28 Javascript
Python base64编码解码实例
2015/06/21 Python
Python装饰器入门学习教程(九步学习)
2016/01/28 Python
解决python3在anaconda下安装caffe失败的问题
2017/06/15 Python
轻量级的Web框架Flask 中模块化应用的实现
2017/09/11 Python
Python使用当前时间、随机数产生一个唯一数字的方法
2017/09/18 Python
CentOS下Python3的安装及创建虚拟环境的方法
2018/11/28 Python
python线程的几种创建方式详解
2019/08/29 Python
python实现人机五子棋
2020/03/25 Python
Python3+Appium安装及Appium模拟微信登录方法详解
2021/02/16 Python
销售类个人求职信范文
2013/09/25 职场文书
银行自荐信范文
2013/10/07 职场文书
投标邀请书范文
2014/01/31 职场文书
成龙洗发水广告词
2014/03/14 职场文书
村容村貌整治方案
2014/05/21 职场文书
党员群众路线对照检查材料
2014/08/31 职场文书
习总书记三严三实学习心得体会
2014/10/13 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
运动会加油稿20字
2014/11/15 职场文书
2014年销售工作总结
2014/12/01 职场文书
运动员加油词
2015/07/18 职场文书
Django路由层如何获取正确的url
2021/07/15 Python