您好,登錄后才能下訂單哦!
本文實例為大家分享了python實現(xiàn)自主查詢實時天氣的具體代碼,供大家參考,具體內(nèi)容如下
用到了urllib2 json 很簡單的一個應(yīng)用 如下
獲取城市編號
#coding=utf-8 import urllib2 url1 = 'http://m.weather.com.cn/data3/city.xml' content1 = urllib2.urlopen(url1).read() provinces = content1.split(',') print content1 # 輸出content1可以查看全部省份代碼 result = '' url = 'http://m.weather.com.cn/data3/city%s.xml' for p in provinces: p_code = p.split('|')[0] url2 = url % p_code content2 = urllib2.urlopen(url2).read() # 輸出content2可以查看此省份下所有城市代碼 cities = content2.split(',') print content2 for c in cities: c_code = c.split('|')[0] url3 = url % c_code content3 = urllib2.urlopen(url3).read() print content3 #content3是此城市下所有地區(qū)代碼 districts = content3.split(',') for d in districts: # 對于每個地區(qū),我們把它的名字記錄下來,然后再發(fā)送一次請求,得到它的最終代碼: d_pair = d.split('|') d_code = d_pair[0] # if 5 == len(d_code): continue temp=[d_code] temp.insert(4,0) d_code ="".join(temp) name = d_pair[1] # 名字 url4 = url % d_code content4 = urllib2.urlopen(url4).read() print content4 code = content4.split('|')[1] line = "%s:%s\n" % (name, code) result += line print name + ':' + code f = file('./city', 'w') f.write(result) f.close()
findweather
# -*- coding: utf-8 -*- import urllib2 import json city = {} f =file('city','r') src = f.readlines() for line in src: line = line.split('\n')[0] name = line.split(':')[0] code = line.split(':')[1] city[name] = code cityname = raw_input('請輸入你要查詢的城市名稱:\n') citycode = city.get(cityname) print cityname if citycode: try: url = ('http://www.weather.com.cn/data/cityinfo/%s.html' % citycode) content = urllib2.urlopen(url).read() data = json.loads(content) result = data['weatherinfo'] str_temp = ('%s\n%s ~ %s') % (result['weather'],result['temp1'],result['temp2']) print str_temp except: print '查詢失敗' else: print '沒有找到該城市'
運行 findweather 即可。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。