【03】天气查询应用(第三课)

第二课的内容学会了吗?

如果你看懂了,那么进行第三部吧,其实只是第二步的升级啦……。我们将抓取的城市地区代码储存到本地文件中。比第二课简单多了。

看下面代码:

 1 import urllib2
 2 
 3 url1 = 'http://m.weather.com.cn/data5/city.xml'
 4 content1 = urllib2.urlopen(url1).read();
 5 privences = content1.split(',')
 6 result = 'city = {\n'
 7 
 8 url = 'http://m.weather.com.cn/data3/city%s.xml'
 9 for p in privences:
10     p_code = p.split('|')[0]
11     url2 = url % p_code
12     content2 = urllib2.urlopen(url2).read()
13     cities = content2.split(',')
14     for c in cities:
15         c_code  = c.split('|')[0]
16         url3 = url % c_code
17         content3 = urllib2.urlopen(url3).read()
18         districts = content3.split(',')
19         for d in districts:
20             d_pair = d.split('|')
21             d_code = d_pair[0]
22             name = d_pair[1]
23             url4 = url % d_code
24             content4 = urllib2.urlopen(url4).read()
25             code = content4.split('|')[1]
26             line = "'%s':'%s',\n" % (name,code)
27             result += line
28             print name + ':'+code
29 result += '}'
30 f = file('E:\city.txt')
31 f.write(result)
32 f.close()
33             

我感觉python对于字符的处理很不优雅,甚至于很蛋疼,对于生成的city.py,必须要在第一行加上:#-*-encoding:GB18030-*-

否则会出现很多问题。

对于直接双击点开.py格式的文件。第一行最好也要加上:#-*-encoding:GB18030-*-

不然在控制台显示中文的时候会是乱码(以上问题貌似仅限于window平台,linux下没有问题,不知道是什么情况)

posted @ 2014-04-08 16:03  _level_  阅读(165)  评论(0)    收藏  举报