您的位置:首页 > 编程语言 > Python开发

python获取本地位置和天气

2012-02-23 21:54 513 查看
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级
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: