无标题文章
2016-03-25 本文已影响22人
westolife
摘要
学Python不拿来写爬虫,总能对得起这门具有强大爬虫功能的脚本语言呢。
现在就来讲讲如何利用网页爬虫来写一个天气预报采集器,主要就是在中国天气网上爬取网页并过滤数据,得到需要的天气信息并打印出来。
这个爬虫例子实现的功能不仅可以查全国城市的天气情况,也可以查一个省份或直辖市的总体天气情况,如输入“广东”则会列出广东省内所有地方的天气。
Python版本:2.7
系统平台:ubuntu 14.04
编程思想
http://www.weather.com.cn/data/cityinfo/%s.html 这个中国天气网的链接即可显示对应城市的天气,其中%s是城市编码,如北京的城市编码是101010100,则浏览器地址栏输入http://www.weather.com.cn/data/cityinfo/101010100.html 即可显示北京的天气信息。这样就可以生成城市和城市编码的字典,输入城市转化为编码,并嵌入到上述链接中,过滤得到相应的信息并打印出来。
那么,列出一个省份中所有城市的天气怎么实现呢?也很简单,我注意到一个省份的所有城镇的城市编码前5位都是一样的,如广东省的广州啊,深圳啊,东莞啊等等这些城市的编码前5位都是10128,因此可以生成省份和5位省份编码的字典,输入省份转化为编码,再加上剩余的4位并嵌入到上述链接中,过滤得到相应的信息并打印出来。
编程思想有了,敲代码就简单了,我自己实现的代码如下:
代码里city和provincce都是一个字典文件,字典的key是城市名称,value是城市编码。运行程序的效果如下: