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面向对象编程之继承与多态详解
Jan 16 Python
python opencv之SIFT算法示例
Feb 24 Python
tensorflow 恢复指定层与不同层指定不同学习率的方法
Jul 26 Python
在Python运行时动态查看进程内部信息的方法
Feb 22 Python
python 实现将文件或文件夹用相对路径打包为 tar.gz 文件的方法
Jun 10 Python
Python实现多线程下载脚本的示例代码
Apr 03 Python
Python使用jupyter notebook查看ipynb文件过程解析
Jun 02 Python
opencv之颜色过滤只留下图片中的红色区域操作
Jun 05 Python
DataFrame.groupby()所见的各种用法详解
Jun 14 Python
python读取excel进行遍历/xlrd模块操作
Jul 12 Python
深入了解Python 变量作用域
Jul 24 Python
python模块内置属性概念及实例
Feb 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
ZF等常用php框架中存在的问题
2008/01/10 PHP
php 无限分类的树类代码
2009/12/03 PHP
再Docker中架设完整的WordPress站点全攻略
2015/07/29 PHP
Zend Framework实现将session存储在memcache中的方法
2016/03/22 PHP
Yii2简单实现多语言配置的方法
2016/07/23 PHP
关于PHP中字符串与多进制转换函数的实例代码
2016/11/03 PHP
PHP符合PSR编程规范的实例分享
2016/12/21 PHP
Laravel 实现密码重置功能
2018/02/23 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
Laravel框架实现的使用smtp发送邮件功能示例
2019/03/12 PHP
jQuery之排序组件的深入解析
2013/06/19 Javascript
使用jQuery插件创建常规模态窗口登陆效果
2013/08/23 Javascript
Jquery Post处理后不进入回调的原因及解决方法
2014/07/15 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
2014/08/01 Javascript
ReactNative页面跳转实例代码
2016/09/27 Javascript
基于jQuery实现弹幕APP
2017/02/10 Javascript
es6在react中的应用代码解析
2017/11/08 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
详解vue父子组件状态同步的最佳方式
2020/09/10 Javascript
javascript实现智能手环时间显示
2020/09/18 Javascript
在vue中使用eslint,配合vscode的操作
2020/11/09 Javascript
python的常见命令注入威胁
2013/02/18 Python
Windows下为Python安装Matplotlib模块
2015/11/06 Python
python模拟登录并且保持cookie的方法详解
2017/04/04 Python
python分割一个文本为多个文本的方法
2019/07/22 Python
Python实现密码薄文件读写操作
2019/12/16 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
CSS的pointer-events属性详细介绍(作用和注意事项)
2014/04/23 HTML / CSS
纯css3实现的竖形无限级导航
2014/12/10 HTML / CSS
HTML5是否真的可以取代Flash
2010/02/10 HTML / CSS
Sperry澳大利亚官网:源自美国帆船鞋创始品牌
2019/07/29 全球购物
法国床上用品商店:La Compagnie du lit
2019/12/26 全球购物
解除合同协议书
2014/04/17 职场文书
幼儿园校车安全责任书
2015/05/08 职场文书
驳回起诉民事裁定书
2015/05/19 职场文书
Java Socket实现多人聊天系统
2021/07/15 Java/Android