Python小项目之获取未来七天的天气情况
一、功能:使用python代码获取城市未来七天的天气情况
二、来源:找到合适的获取数据网址:http://qq.ip138.com/weather/sichuan/LuZhou.htm (以此为例)
三、根据提供的url地址天气数据,获取请求结果的页面信息,并通过正则表达式筛选出有效信。
四、代码实现
import urllib.request ,sys
import re
def get_weather():
provice = input('输入省份名(请使用拼音):')
city = input('输入城市名(请使用拼音):')
#获取天气的URL
url = "http://qq.ip138.com/weather/"+provice+'/'+city+'_7tian.htm'
#获取页面信息
weatherhtml = urllib.request.urlopen(url);
res = weatherhtml.read().decode("GB2312");
#将获取信息写入
f=open('wea.txt','wb');
f.write(res.encode('GB2312'))
f.close()
#正则表达式获取天气信息
pattern = 'Title.+<b>(.+)</b>'
Title = re.search(pattern,res).group(1)
pattern = '>(\d*-\d*.+?)<'
date = re.findall(pattern,res)
pattern = 'alt="(.+?)"'
weather = re.findall(pattern,res)
print("%35.30s"%Title)
length = len(date)
for i in range(0,length):
print('%33.20s'%date[i],'\t%s'%weather[i])
if __name__=="__main__":
get_weather()
五、结果
代码参考:获取未来七天天气情况