根据第一课学习我们可以编写脚本获取城市代码了
(获得的编码格式未转换,要做具体的应用必须转化得到的字符串,或者直接抓取各个省市的代号储存到文件中,这样不需要每次都抓取网页,提高效率)
第一步:
获取省及直辖市代码:
1 import urllib22 3 url1='http://m.weather.com.cn/data5/city.xml'4 content1 = urllib2.urlopen(url1).read()5 provinces = content1.spilt(',')
我们可以用print输出content1中的内容:
01|北京,02|上海,03|天津,04|重庆,05|黑龙江,06|吉林,07|辽宁,08|内蒙古,09|河北,10|山西,11|陕西,12|山东,13|新疆,14|西藏,15|青海,16|甘肃,17|宁夏,18|河南,19|江苏,20|湖北,21|浙江,22|安徽,23|福建,24|江西,25|湖南,26|贵州,27|四川,28|广东,29|云南,30|广西,31|海南,32|香港,33|澳门,34|台湾
第二步:根据用户输入的省或者直辖市获取各个城市编号:
若用户输入山西查得编号10
1 import urllib2 province = 103 url = "http://m.weather.com.cn/data3/city%s.xml" % province4 content = urllib2.urlopen(url).read()
print content可以看到content的内容:
1001|太原,1002|大同,1003|阳泉,1004|晋中,1005|长治,1006|晋城,1007|临汾,1008|运城,1009|朔州,1010|忻州,1011|吕梁
第三步:获得城市二级代码,例如大同为1002;
import urllib2city = 1002url = "http://m.weather.com.cn/data3/city%s.xml" % citycontent = urllib2.urlopen(url).read()
print content看看他的内容吧(这个就是三级编码):
100201|大同,100202|阳高,100203|大同县,100204|天镇,100205|广灵,100206|灵邱,100207|浑源,100208|左云
第四步:获取完整编号;
例如阳高:100202
1 import urllib22 city = 1002023 url = "http://m.weather.com.cn/data3/city%s.xml" % city4 content = urllib2.urlopen(url).read()
print content:
输出:100202|101100202,101100202就是这个地区的具体代码了。
其实在获得的三级编码前面加上101就是具体代码了,第四步可以省略。