閑來無事想搞一下天氣API,大致查了一下,國內比較好的還是中國天氣網(中國氣象台)的,門戶網站有新浪和騰迅(搜搜),其他有一些小網站擔心不穩定,所以沒有用。
最簡單的指令碼。發送請求擷取JSON並解析,簡單地輸出到螢幕上。
這裡只用到了北京地區,其他地區需要將URL地址中的相關代碼替換掉。這些代碼可以在下面的參考連結中查到。
截屏如下,又有亂碼,沒有辦法,python的亂碼太噁心了,在IDLE裡運行是正常的,湊合吧:
參考連結:
http://www.weste.net/2012/8-23/84850.html
#! /usr/bin/python# coding = utf-8# ToDo: get weather info from weather.com.cn# Author: Steven# Date: 2013/05/13import urllib2import json# get weather html and parse to jsonweatherHtml = urllib2.urlopen('http://m.weather.com.cn/data/101010100.html').read()weatherJSON = json.JSONDecoder().decode(weatherHtml)weatherInfo = weatherJSON['weatherinfo']# print weather infoprint '城市:\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']