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 MySQLdb模块连接操作mysql数据库实例
Apr 08 Python
Python基于socket实现简单的即时通讯功能示例
Jan 16 Python
Python爬豆瓣电影实例
Feb 23 Python
Python绘制3D图形
May 03 Python
flask框架中勾子函数的使用详解
Aug 01 Python
python中字符串内置函数的用法总结
Sep 13 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
Nov 30 Python
Python3.5 Pandas模块之Series用法实例分析
Apr 23 Python
Python操作远程服务器 paramiko模块详细介绍
Aug 07 Python
tensorflow实现对张量数据的切片操作方式
Jan 19 Python
python文件和文件夹复制函数
Feb 07 Python
哪种Python框架适合你?简单介绍几种主流Python框架
Aug 04 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原理之变量(Variables inside PHP)
2013/08/09 PHP
php中str_pad()函数用法分析
2017/03/28 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
PHP实现获取第一个中文首字母并进行排序的方法
2017/05/09 PHP
Javascript-Mozilla和IE中的一个函数直接量的问题
2007/01/09 Javascript
JScript中的undefined和"undefined"的区别
2007/03/08 Javascript
js中的window.open返回object的错误的解决方法
2009/08/15 Javascript
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
使用js实现关闭js弹出层的窗口
2014/02/10 Javascript
node.js中的buffer.toJSON方法使用说明
2014/12/14 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
js实现a标签超链接提交form表单的方法
2015/06/24 Javascript
JavaScript 深层克隆对象详解及实例
2016/11/03 Javascript
自定义类似于jQuery UI Selectable 的Vue指令v-selectable
2017/08/23 jQuery
JavaScript 数组的进化与性能分析
2017/09/18 Javascript
Angular 如何使用第三方库的方法
2018/04/18 Javascript
解决Angular2 router.navigate刷新页面的问题
2018/08/31 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
详解vue 路由跳转四种方式 (带参数)
2019/04/28 Javascript
小程序多图列表实现性能优化的方法步骤
2019/05/28 Javascript
vue自定义插件封装,实现简易的elementUi的Message和MessageBox的示例
2020/11/20 Vue.js
从零学python系列之浅谈pickle模块封装和拆封数据对象的方法
2014/05/23 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
python实现flappy bird游戏
2018/12/24 Python
Python项目 基于Scapy实现SYN泛洪攻击的方法
2019/07/23 Python
keras 特征图可视化实例(中间层)
2020/01/24 Python
matlab、python中矩阵的互相导入导出方式
2020/06/01 Python
美国时装品牌:Nautica(诺帝卡)
2016/08/28 全球购物
事业单位个人应聘自荐信
2013/09/21 职场文书
办公室主任岗位职责
2013/11/08 职场文书
婚内房产协议书范本
2014/10/02 职场文书
工作简报范文
2015/07/21 职场文书
动画《朋友游戏》公开佐藤友生绘制的开播纪念绘
2022/04/06 日漫
MySQL存储过程及语法详解
2022/08/05 MySQL