python獲取本地位置和天氣
覺得最大的難點就是如何將漢字轉換成拼音
#encoding=gbk
import urllib
import sys
import re
import pinyin
city_info=urllib.urlopen( 'http://pv.sohu.com/cityjson').read()
print city_info #看輸出結構
addr=city_info.split('=')[1].split(',')[2].split('"')[3] #取出地址信息
open('nj.txt','w').write(addr)
pinyin = pinyin.Pinyin(file_path='./nj.txt')
pinyin.label_chinese() #將地址轉換成拼音,寫入文件
f=open('nj.txt').read()
print f #看輸出地址拼音結構
provice=f.split('sheng',1)[0].replace(' ','') #獲取省份
city=f.split('shi')[0].split('sheng')[1].strip().replace(' ','') #獲取城市
url='http://qq.ip138.com/weather/%s/%s.htm'%(provice,city)
#分析url可知某省某市的天氣url即為上面格式
wea_info=urllib.urlopen(url).read()
tianqi_pattern='alt="(.+?)"'
tianqi=re.findall(tianqi_pattern, wea_info) #獲取天氣信息
wendu_pattern='<td>([-]?\d{1,2}.+)</td>'
wendu=re.findall(wendu_pattern, wea_info) #獲取溫度信息
wind_pattern='<td>(\W+\d{1,2}.+)</td>'
wind=re.findall(wind_pattern, wea_info) #獲取風向信息
print '位置:',addr
print '天氣:',tianqi[0] #當天天氣,明天天氣即為tianqi[1],最多獲取6天天氣
print '溫度:',wendu[0] #當天溫度
print '風向:',wind[0] #當天風向
上面import pinyin就是上面給的鏈接下載下來的代碼。
運行結果:
var returnCitySN = {"cip": "122.96.155.107", "cid": "320100", "cname": "江蘇省南京市"};
所在位置: 江蘇省南京市
天氣: 陰
溫度: 3℃
風向: 東北風4-5級
*