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中__call__方法示例分析
Oct 11 Python
Python实现获取网站PR及百度权重
Jan 21 Python
python学习数据结构实例代码
May 11 Python
Python基础知识_浅谈用户交互
May 31 Python
对python xlrd读取datetime类型数据的方法详解
Dec 26 Python
python3.6编写的单元测试示例
Aug 17 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
Django 路由层URLconf的实现
Dec 30 Python
Windows上安装tensorflow  详细教程(图文详解)
Feb 04 Python
用Python 爬取猫眼电影数据分析《无名之辈》
Jul 24 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 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操作文件方法问答
2007/03/16 PHP
PHP高手需要要掌握的知识点
2014/08/21 PHP
深入理解PHP中的Streams工具
2015/07/03 PHP
《JavaScript高级程序设计》阅读笔记(二) ECMAScript中的原始类型
2012/02/27 Javascript
javascript实现table表格隔行变色的方法
2015/05/13 Javascript
jQuery简单实现input文本框内灰色提示文本效果的方法
2015/12/02 Javascript
原生js实现ajax方法(超简单)
2016/09/20 Javascript
微信小程序(应用号)简单实例应用及实例详解
2016/09/26 Javascript
详解js的六大数据类型
2016/12/27 Javascript
vue2 自定义动态组件所遇到的问题
2017/06/08 Javascript
详解微信小程序设置底部导航栏目方法
2017/06/29 Javascript
vue-content-loader内容加载器的使用方法
2018/08/05 Javascript
React中使用外部样式的3种方式(小结)
2019/05/28 Javascript
jQuery 实现DOM元素拖拽交换位置的实例代码
2020/07/14 jQuery
[01:06:25]Secret vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
[01:08:32]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第二场 1月18日
2021/03/11 DOTA
Python获取文件ssdeep值的方法
2014/10/05 Python
Python实现把数字转换成中文
2015/06/29 Python
Python、PyCharm安装及使用方法(Mac版)详解
2017/04/28 Python
Python实现抓取网页生成Excel文件的方法示例
2017/08/05 Python
基于使用paramiko执行远程linux主机命令(详解)
2017/10/16 Python
Python网络爬虫中的同步与异步示例详解
2018/02/03 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
帕克纽约:PARKER NY
2018/12/09 全球购物
办理退休介绍信
2014/01/09 职场文书
小学学雷锋活动总结
2014/04/25 职场文书
跳蚤市场口号
2014/06/13 职场文书
毕业实习证明(4篇)
2014/10/28 职场文书
《爱的教育》读书心得
2014/11/08 职场文书
2014年心理健康教育工作总结
2014/12/06 职场文书
2016年安全生产先进个人事迹材料
2016/02/29 职场文书
JavaScript实现简单拖拽效果
2021/09/15 Javascript
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript
一篇文章弄清楚Ajax请求的五个步骤
2022/03/17 Javascript