【02】天气查询应用(第二课)

根据第一课学习我们可以编写脚本获取城市代码了

(获得的编码格式未转换,要做具体的应用必须转化得到的字符串,或者直接抓取各个省市的代号储存到文件中,这样不需要每次都抓取网页,提高效率)

第一步:

获取省及直辖市代码:

1 import urllib2
2 
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 urllib
2 province = 10
3 url = "http://m.weather.com.cn/data3/city%s.xml" % province
4 content = urllib2.urlopen(url).read()

print content可以看到content的内容:

1001|太原,1002|大同,1003|阳泉,1004|晋中,1005|长治,1006|晋城,1007|临汾,1008|运城,1009|朔州,1010|忻州,1011|吕梁

第三步:获得城市二级代码,例如大同为1002;

import urllib2
city = 1002
url = "http://m.weather.com.cn/data3/city%s.xml" % city
content = urllib2.urlopen(url).read()

print content看看他的内容吧(这个就是三级编码):

100201|大同,100202|阳高,100203|大同县,100204|天镇,100205|广灵,100206|灵邱,100207|浑源,100208|左云

第四步:获取完整编号;

例如阳高:100202

1 import urllib2
2 city = 100202
3 url = "http://m.weather.com.cn/data3/city%s.xml" % city
4 content = urllib2.urlopen(url).read()

print content:

输出:100202|101100202,101100202就是这个地区的具体代码了。

其实在获得的三级编码前面加上101就是具体代码了,第四步可以省略。

 

posted @ 2014-04-08 15:37  _level_  阅读(178)  评论(0编辑  收藏  举报