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 相关文章推荐
本地文件上传到七牛云服务器示例(七牛云存储)
Jan 11 Python
python解析xml模块封装代码
Feb 07 Python
python发送邮件示例(支持中文邮件标题)
Feb 16 Python
深度剖析使用python抓取网页正文的源码
Jun 11 Python
python获取元素在数组中索引号的方法
Jul 15 Python
Python在不同目录下导入模块的实现方法
Oct 27 Python
Python通过OpenCV的findContours获取轮廓并切割实例
Jan 05 Python
Python 中的range(),以及列表切片方法
Jul 02 Python
使用PyCharm创建Django项目及基本配置详解
Oct 24 Python
使用python实现画AR模型时序图
Nov 20 Python
用python读取xlsx文件
Dec 17 Python
python 用pandas实现数据透视表功能
Dec 21 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
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
2013/06/19 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
PHP数组函数array_multisort()用法实例分析
2016/04/02 PHP
PHP开发之用微信远程遥控服务器
2018/01/25 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
PHP simplexml_load_string()函数实例讲解
2019/02/03 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(上:事件篇)
2010/03/24 Javascript
JavaScript.The.Good.Parts阅读笔记(一)假值与===运算符
2010/11/16 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
使用非html5实现js板连连看游戏示例代码
2013/09/22 Javascript
JS小游戏之宇宙战机源码详解
2014/09/25 Javascript
jQuery插件简单实现方法
2015/07/18 Javascript
AngularJS使用ng-app自动加载bootstrap框架问题分析
2017/01/04 Javascript
js Dom实现换肤效果
2017/10/21 Javascript
JS设计模式之命令模式概念与用法分析
2018/02/06 Javascript
ES6中let、const的区别及变量的解构赋值操作方法实例分析
2019/10/15 Javascript
微信小程序自定义导航栏(模板化)
2019/11/15 Javascript
基于react项目打包css引用路径错误解决方案
2020/10/28 Javascript
解决Vue-cli无法编译es6的问题
2020/10/30 Javascript
Python获取Windows或Linux主机名称通用函数分享
2014/11/22 Python
Python字典操作简明总结
2015/04/13 Python
Python实现base64编码的图片保存到本地功能示例
2018/06/22 Python
python中图像通道分离与合并实例
2020/01/17 Python
Python中无限循环需要什么条件
2020/05/27 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
服装厂厂长职责
2013/12/16 职场文书
北京奥运会主题口号
2014/06/13 职场文书
委托书格式
2014/08/01 职场文书
思想品德评语大全
2014/12/31 职场文书
幼儿园教师求职信
2015/03/20 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
python实现黄金分割法的示例代码
2021/04/28 Python
MYSQL如何查看进程和kill进程
2022/03/13 MySQL
Java实现注册登录跳转
2022/06/16 Java/Android