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 06 Python
python 性能优化方法小结
Mar 31 Python
Python读写及备份oracle数据库操作示例
May 17 Python
使用python获取(宜宾市地震信息)地震信息
Jun 20 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
Dec 25 Python
Python计算IV值的示例讲解
Feb 28 Python
python实现FTP循环上传文件
Mar 20 Python
Python-openCV开运算实例
Jul 05 Python
python如何提升爬虫效率
Sep 27 Python
python 利用panda 实现列联表(交叉表)
Feb 06 Python
Python 中random 库的详细使用
Jun 03 Python
Python极值整数的边界探讨分析
Sep 15 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中url函数介绍及使用示例
2014/02/13 PHP
高性能PHP框架Symfony2经典入门教程
2014/07/08 PHP
php使用MySQL保存session会话的方法
2015/06/18 PHP
php实现的redis缓存类定义与使用方法示例
2017/08/09 PHP
Laravel中使用Queue的最基本操作教程
2017/12/27 PHP
浅谈PHP array_search 和 in_array 函数效率问题
2019/10/15 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
JavaScript 常用函数
2009/12/30 Javascript
JavaScript 空位补零实现代码
2010/02/26 Javascript
原创javascript小游戏实现代码
2010/08/19 Javascript
javascript显式类型转换实例分析
2015/04/25 Javascript
jQuery组件easyui对话框实现代码
2016/08/25 Javascript
jQuery插件Echarts实现的渐变色柱状图
2017/03/23 jQuery
基于jQuery实现定位导航位置效果
2017/11/15 jQuery
vue2.0 + element UI 中 el-table 数据导出Excel的方法
2018/03/02 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
2019/08/09 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
vue+flask实现视频合成功能(拖拽上传)
2021/03/04 Vue.js
python实现简单温度转换的方法
2015/03/13 Python
python回调函数中使用多线程的方法
2017/12/25 Python
python Celery定时任务的示例
2018/03/13 Python
Python多图片合并PDF的方法
2019/01/03 Python
python实现微信定时每天和女友发送消息
2019/04/29 Python
python tkinter基本属性详解
2019/09/16 Python
python使用itchat模块给心爱的人每天发天气预报
2019/11/25 Python
Python爬虫设置ip代理过程解析
2020/07/20 Python
python 实现单例模式的5种方法
2020/09/23 Python
美国婚礼礼品网站:MyWeddingFavors
2018/09/26 全球购物
java程序员面试交流
2012/11/29 面试题
出纳会计岗位职责
2014/03/12 职场文书
《天安门广场》教学反思
2014/04/23 职场文书
小学生保护环境倡议书
2014/05/15 职场文书
政协会议宣传标语
2014/10/09 职场文书
党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
《遗弃》开发商删推文要跑路?官方回应:还在开发
2022/04/03 其他游戏