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爬取最好大学网大学排名
Feb 24 Python
BP神经网络原理及Python实现代码
Dec 18 Python
解决python打不开文件(文件不存在)的问题
Feb 18 Python
windows下numpy下载与安装图文教程
Apr 02 Python
Python 3.6 -win64环境安装PIL模块的教程
Jun 20 Python
python射线法判断一个点在图形区域内外
Jun 28 Python
django数据关系一对多、多对多模型、自关联的建立
Jul 24 Python
Django对models里的objects的使用详解
Aug 17 Python
Python全局锁中如何合理运用多线程(多进程)
Nov 06 Python
opencv python如何实现图像二值化
Feb 03 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
Jun 01 Python
一文轻松掌握python语言命名规范规则
Jun 18 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
一次编写,随处运行
2006/10/09 PHP
PHP的开合式多级菜单程序
2006/10/09 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
JavaScript删除指定子元素代码实例
2015/01/13 Javascript
浅谈jquery回调函数callback的使用
2015/01/30 Javascript
jQuery结合HTML5制作的爱心树表白动画
2015/02/01 Javascript
Node.js静态文件服务器改进版
2016/01/10 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
详解Vue 开发模式下跨域问题
2017/06/06 Javascript
详解vuex的简单使用
2018/03/12 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
Layui弹出层 加载 做编辑页面的方法
2019/09/16 Javascript
Vue页面手动刷新,实现导航栏激活项还原到初始状态
2020/08/06 Javascript
[39:00]Optic vs VP 2018国际邀请赛淘汰赛BO3 第三场 8.24
2018/08/25 DOTA
[58:11]守擂赛第二周擂主赛 DeMonsTer vs Leopard
2020/04/28 DOTA
跟老齐学Python之Python文档
2014/10/10 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
Python 给某个文件名添加时间戳的方法
2018/10/16 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
Python django搭建layui提交表单,表格,图标的实例
2019/11/18 Python
Python编程快速上手——选择性拷贝操作案例分析
2020/02/28 Python
解决jupyter notebook 前面书写后面内容消失的问题
2020/04/13 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
htnl5利用svg页面高斯模糊的方法
2018/07/20 HTML / CSS
迪斯尼商品官方网站:ShopDisney
2016/08/01 全球购物
Myprotein葡萄牙官方网站:英国优质运动营养品牌
2016/09/12 全球购物
JAVA招聘远程笔试题
2015/07/23 面试题
七一党建活动方案
2014/01/28 职场文书
志愿者活动总结
2014/04/28 职场文书
农业开发项目建议书
2014/05/16 职场文书
个人批评与自我批评发言稿
2014/09/28 职场文书
小学家长意见怎么写
2015/06/03 职场文书
教你如何使用Python Tkinter库制作记事本
2021/06/10 Python
详解Java实践之适配器模式
2021/06/18 Java/Android