在网上找到一篇《python调用中国天气网的公用API获取天气信息 》它的源码是这样的:
#! /usr/bin/python
# coding = utf-8
# ToDo: get weather info from weather.com.cn
# Author: Steven
# Date: 2013/05/13
import urllib2
import json
# get weather html and parse to json
weatherHtml = urllib2.urlopen('http://m.weather.com.cn/data/101010100.html').read()
weatherJSON = json.JSONDecoder().decode(weatherHtml)
weatherInfo = weatherJSON['weatherinfo']
# print weather info
print '城市:t', weatherInfo['city']
print '时间:t', weatherInfo['date_y']
print '24小时天气:'
print '温度:t', weatherInfo['temp1']
print '天气:t', weatherInfo['weather1']
print '风速:t', weatherInfo['wind1']
print '紫外线:t', weatherInfo['index_uv']
print '穿衣指数:t', weatherInfo['index_d']
print '48小时天气:'
print '温度:t', weatherInfo['temp2']
print '天气:t', weatherInfo['weather2']
print '风速:t', weatherInfo['wind2']
print '紫外线:t', weatherInfo['index48_uv']
print '穿衣指数:t', weatherInfo['index48_d']
print '72小时天气:'
print '温度:t', weatherInfo['temp3']
print '天气:t', weatherInfo['weather3']
print '风速:t', weatherInfo['wind3']
可是由于接口已经失效,所以无法运行,后来又找到了这篇文章《国家气象局免费天气预报接口API》,然后发现原来有三个接口地址:
http://www.weather.com.cn/data/sk/101010100.html
http://www.weather.com.cn/data/cityinfo/101010100.html
http://m.weather.com.cn/data/101010100.html
于是使用另外一个结口地址,稍微改了一下,终于取到了数。
# -*- coding: UTF-8 -*-
# /usr/bin/python
# ToDo: get weather info from weather.com.cn
import urllib2
import json
# get weather html and parse to json
weatherHtml = urllib2.urlopen('http://www.weather.com.cn/data/sk/101010100.html').read()
weatherJSON = json.JSONDecoder().decode(weatherHtml)
weatherInfo = weatherJSON['weatherinfo']
# print weather info
print '城市:t', weatherInfo['city']
print '24小时天气:'
print '温度:t', weatherInfo['temp']
print '风向:t', weatherInfo['WD']
print '风速:t', weatherInfo['WS']
print '湿度:t', weatherInfo['SD']
print '时间:t', weatherInfo['time']
print '紫外线:t', weatherInfo['WSE']
print '穿衣指数:t', weatherInfo['isRadar']
print '温度:t', weatherInfo['njd']
print '天气:t', weatherInfo['qy']
print '风速:t', weatherInfo['rain']
备注:最后面几个参数我懒得对了,说明文字是不对的。
作者:蜗牛博客
