自学Python编程【第四十一节】查天气(1)

欢迎你来到马哥自学Python编程第四十一节,我们今天也是开始一个新的内容——查天气,当然今天不是直接告诉你怎么查天气,而是跟你简单说说,天气怎么查询,然后大家试着自己是否可以完成这个代码,挑战一下吧:

给大家看一个程序:

自学Python编程【第四十一节】查天气(1)

你输入一个城市的名称,就会告诉你这个城市现在的天气情况。接下来的几节课,我就说一下怎么实现这样一个小程序。

之所以能知道一个城市的天气,是因为用了中国天气网(www.weather.com.cn)提供的天气查询接口。在浏览器里试着访问一下:

http://www.weather.com.cn/data/cityinfo/101010100.html

你就能看到北京现在的天气。这段看上去有点像Python中字典类的文字是一种称作json格式的数据。

而我们的程序要做的事情,就是按照用户输入的城市名称,去天气网的接口请求对应的天气信息,再把结果展示给用户。

于是,在这个程序中,我们要用到两个新模块:

1. urllib2

用来发送网络请求,获取数据

2. json

用来解析获得的数据

听上去似乎还挺不算太复杂?但是注意刚才那个例子,我们请求北京天气时,用了“101010100”这样的数字。这是天气网设定的城市代码。然而令人蛋疼的是,天气网并没有直接给出所有城市代码的对应关系,而是给了3个接口:

1. http://m.weather.com.cn/data5/city.xml

获取所有省/直辖市的编号,如“01|北京,02|上海,03|天津”

2. http://m.weather.com.cn/data5/city省编号.xml

获取二级地区编号,如江苏是:city19.xml

3. http://m.weather.com.cn/data5/city二级编号.xml

获取三级编号,如南京是:city1901.xml

得到最终的三级编号之后,再加上中国101的前缀,就得到了城市代码,如南京市区就是“101190101”

所以,你可以选择,再写一个Python程序,事先把这些复杂的编码全部抓取下来,整理成你要的格式;或者,偷懒一下,跳过这个过程,直接拿我抓好的编码。我放在了网盘里:

http://pan.baidu.com/share/link?shareid=1471212773&uk=204484850

今天先卖个关子,不说具体的写法。想挑战的同学可以试试再我说之前就把这个程序搞定。

恭喜您在Python自学的道路上又坚持了一天,大家想想我们之前讲过的循环、文件存取、修改等,是不是可以试着写写呢?试着挑战一下自己,我在这里期待着大家的好成绩,不会也没有关系,下一节我们一点点像大家揭秘。

好啦,今天的分享到这里就结束了,希望大家能够持续关注马哥教育官网,每天都会有大量优质内容与大家分享!

声明:文章来源于网络,侵删!

相关新闻

历经多年发展,已成为国内好评如潮的Linux云计算运维、SRE、Devops、网络安全、云原生、Go、Python开发专业人才培训机构!