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使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 Python
在python的WEB框架Flask中使用多个配置文件的解决方法
Apr 18 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
python3个性签名设计实现代码
Jun 19 Python
python并发和异步编程实例
Nov 15 Python
关于Pycharm无法debug问题的总结
Jan 19 Python
Python3内置模块pprint让打印比print更美观详解
Jun 02 Python
python通过http下载文件的方法详解
Jul 26 Python
Python 生成一个从0到n个数字的列表4种方法小结
Nov 28 Python
pytorch: Parameter 的数据结构实例
Dec 31 Python
Anaconda+Pycharm环境下的PyTorch配置方法
Mar 13 Python
工程师必须了解的LRU缓存淘汰算法以及python实现过程
Oct 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 If Else(elsefi) 语句
2013/04/07 PHP
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
php 5.6版本中编写一个PHP扩展的简单示例
2015/01/20 PHP
PHP创建/删除/复制文件夹、文件
2016/05/03 PHP
PHP实现函数内修改外部变量值的方法示例
2018/12/28 PHP
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
解决Jquery load()加载GB2312页面时出现乱码的两种方案
2013/09/10 Javascript
jQuery模拟点击A标记示例参考
2014/04/17 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
js 颜色选择插件
2017/01/23 Javascript
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
解决vue打包css文件中背景图片的路径问题
2018/09/03 Javascript
详解a标签添加onclick事件的几种方式
2019/03/29 Javascript
详解VUE调用本地json的使用方法
2019/05/15 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
JavaScript实现飞舞的泡泡效果
2020/02/07 Javascript
vue从零实现一个消息通知组件的方法详解
2020/03/16 Javascript
js中位数不足自动补位扩展padLeft、padRight实现代码
2020/04/06 Javascript
vc6编写python扩展的方法分享
2014/01/17 Python
Python getopt模块处理命令行选项实例
2014/05/13 Python
Python面向对象编程基础解析(二)
2017/10/26 Python
Python理解递归的方法总结
2019/01/28 Python
python下载库的步骤方法
2019/10/12 Python
django中间键重定向实例方法
2019/11/10 Python
详解django使用include无法跳转的解决方法
2020/03/19 Python
推荐WEB开发者最佳HTML5和CSS3代码生成器
2015/11/24 HTML / CSS
Stefania Mode英国:奢华设计师和时尚服装
2017/10/23 全球购物
数以千计的折扣工业产品:ESE Direct
2018/05/20 全球购物
新西兰廉价汽车租赁:Snap Rentals
2018/09/14 全球购物
后备干部培训方案
2014/05/22 职场文书
广播体操比赛口号
2014/06/10 职场文书
工作失职检讨书500字
2014/10/17 职场文书
毕业欢送会致辞
2015/07/29 职场文书
2016元旦主持人开场白
2015/12/03 职场文书