查天气(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程序,事先把这些复杂的编码全部抓取下来,整理成你要的格式;或者,偷懒一下,跳过这个过程,直接拿我抓好的编码。我把它放在了贴吧上。

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,037评论 3 119
  • 今天练琴练着突然想放弃了,我觉得脑海中产生这个想法真的是太可怕了。先问问自己你有什么,一个月拿着两千块钱的工资...
    丁信子阅读 1,657评论 0 0
  • 文/林小白 01 我的优点是执着,缺点也是执着。我只要做了决定,八百头牛都拉不回来。所以,我现在一个人在大理。 在...
    Nicole林小白阅读 5,155评论 15 43
  • 翻了一遍老公的朋友圈,目的吸收点不一样的正能量。因我圈皆宝妈或微商。晒的就是我们差不多的小心思——幸福(儿女,厨艺...
    icey六妮阅读 1,079评论 1 0
  • 樟木南在奶奶家睡的挺好,但大清早被一阵骚动吵醒,樟木南本不想理会,这一周已经快被折磨死了,好不容易熬到了周末,可以...
    马樱佳阅读 1,774评论 0 0