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中的__slots__缓存资源以节省内存开销的方法
Apr 02 Python
在Linux系统上安装Python的Scrapy框架的教程
Jun 11 Python
一波神奇的Python语句、函数与方法的使用技巧总结
Dec 08 Python
将字典转换为DataFrame并进行频次统计的方法
Apr 08 Python
Python实现计算圆周率π的值到任意位的方法示例
May 08 Python
Python设计模式之策略模式实例详解
Jan 21 Python
CentOS7安装Python3的教程详解
Apr 10 Python
通过 Django Pagination 实现简单分页功能
Nov 11 Python
Python如何获取Win7,Win10系统缩放大小
Jan 10 Python
Python常用断言函数实例汇总
Nov 30 Python
Python3 多线程(连接池)操作MySQL插入数据
Jun 09 Python
Python合并pdf文件的工具
Jul 01 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
重置版战役片段
2020/04/09 魔兽争霸
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
Codeigniter实现处理用户登录验证后的URL跳转
2014/06/12 PHP
PHP远程采集图片详细教程
2014/07/01 PHP
PHP常见漏洞攻击分析
2016/02/21 PHP
PHP使用标准库spl实现的观察者模式示例
2018/08/04 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
JavaScript的面向对象方法以及差别
2008/03/31 Javascript
javascript GUID生成器实现代码
2009/10/31 Javascript
JavaScript Chart 插件整理
2010/06/18 Javascript
js中传递特殊字符(+,&)的方法
2014/01/16 Javascript
JavaScript-RegExp对象只能使用一次问题解决方法
2014/06/23 Javascript
jQuery实现页面内锚点平滑跳转特效的方法总结
2015/05/11 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
js实现滑动到页面底部自动加载更多功能
2017/02/15 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
angularjs实现对表单输入改变的监控(ng-change和watch两种方式)
2018/08/29 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
VUE实现密码验证与提示功能
2019/10/18 Javascript
判断JavaScript中的两个变量是否相等的操作符
2019/12/21 Javascript
Python Socket编程详细介绍
2017/03/23 Python
Python正则表达式分组概念与用法详解
2017/06/24 Python
对python 命令的-u参数详解
2018/12/03 Python
Python中psutil的介绍与用法
2019/05/02 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
简单了解python装饰器原理及使用方法
2019/12/18 Python
python实现按关键字筛选日志文件
2019/12/24 Python
简单了解如何封装自己的Python包
2020/07/08 Python
Python字典取键、值对的方法步骤
2020/09/30 Python
工程监理应届生求职信
2013/11/09 职场文书
家长学校培训材料
2014/08/20 职场文书
2015教师节通讯稿
2015/07/20 职场文书
诚实守信主题班会
2015/08/13 职场文书
党组织关系的介绍信模板
2019/06/21 职场文书
mysql中between的边界,范围说明
2021/06/08 MySQL