第二课的内容学会了吗?
如果你看懂了,那么进行第三部吧,其实只是第二步的升级啦……。我们将抓取的城市地区代码储存到本地文件中。比第二课简单多了。
看下面代码:
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下没有问题,不知道是什么情况)