第二课的内容学会了吗?
如果你看懂了,那么进行第三部吧,其实只是第二步的升级啦……。我们将抓取的城市地区代码储存到本地文件中。比第二课简单多了。
看下面代码:
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_code12 content2 = urllib2.urlopen(url2).read()13 cities = content2.split(',')14 for c in cities:15 c_code = c.split('|')[0]16 url3 = url % c_code17 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_code24 content4 = urllib2.urlopen(url4).read()25 code = content4.split('|')[1]26 line = "'%s':'%s',\n" % (name,code)27 result += line28 print name + ':'+code29 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下没有问题,不知道是什么情况)