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 19 Python
Python快速从注释生成文档的方法
Dec 26 Python
Python 3中print函数的使用方法总结
Aug 08 Python
python实现的接收邮件功能示例【基于网易POP3服务器】
Sep 11 Python
python实现实时视频流播放代码实例
Jan 11 Python
如何在python开发工具PyCharm中搭建QtPy环境(教程详解)
Feb 04 Python
Python3-异步进程回调函数(callback())介绍
May 02 Python
Django用户登录与注册系统的实现示例
Jun 03 Python
python根据字典的键来删除元素的方法
Aug 16 Python
如何通过Python实现RabbitMQ延迟队列
Nov 28 Python
Python爬取网站图片并保存的实现示例
Feb 26 Python
Python requests用法和django后台处理详解
Mar 19 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实现文件安全下载
2006/10/09 PHP
PHP调用三种数据库的方法(3)
2006/10/09 PHP
PHP安装攻略:常见问题解答(二)
2006/10/09 PHP
PHP的面试题集,附我的答案和分析(一)
2006/11/19 PHP
PHP自定义函数收代码
2010/08/01 PHP
兼容各大浏览器带关闭按钮的漂浮多组图片广告代码
2014/06/05 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
慎用 somefunction.prototype 分析
2009/06/02 Javascript
JS 实现双色表格实现代码
2009/11/24 Javascript
使用JS 清空File控件的路径值
2013/07/08 Javascript
JavaScript截取字符串的Slice、Substring、Substr函数详解和比较
2014/03/20 Javascript
Window.Open打开窗体和if嵌套代码
2016/04/15 Javascript
JavaScript禁止复制与粘贴的实现代码
2016/05/16 Javascript
详解Angular.js的$q.defer()服务异步处理
2016/11/06 Javascript
jQuery向webApi提交post json数据
2017/01/16 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
layui实现下拉框三级联动
2019/07/26 Javascript
Node.js 深度调试方法解析
2020/07/28 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
javascript实现打砖块小游戏(附完整源码)
2020/09/18 Javascript
[07:08]2014DOTA2西雅图国际邀请赛 小组赛7月11日TOPPLAY
2014/07/11 DOTA
Python set集合类型操作总结
2014/11/07 Python
Python3搜索及替换文件中文本的方法
2015/05/22 Python
python 系统调用的实例详解
2017/07/11 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
基于python实现学生信息管理系统
2019/11/22 Python
PyTorch之nn.ReLU与F.ReLU的区别介绍
2020/06/27 Python
html5的画布canvas——画出弧线、旋转的图形实例代码+效果图
2013/06/09 HTML / CSS
中学生学习保证书
2015/02/26 职场文书
《刺客之王:C罗全景传记》:时代从来不会亏待手艺人
2019/11/28 职场文书
python关于集合的知识案例详解
2021/05/30 Python
能用CSS实现的就不要麻烦JavaScript了
2021/10/05 HTML / CSS
Redis全局ID生成器的实现
2022/06/05 Redis