爬取全国天气数据的想法及思路

作为一个python小白,总想找点项目自己练练手,已经有好几个月没有写代码,于是,就想起来爬取全国天气,然后数据分析全国天气数据,比如上月温差最大的城市,气温最高的城市,降雨量最多的城市等等。

去百度了天气的api,想要长期用,全部都是收费的,我又不商用,当然不愿意出这个钱,于是我就找到了下边这三个网站。

1. 腾讯天气

腾讯天气:https://tianqi.qq.com/index.htm

我分析了腾讯天气的数据加载过程,被我发现了这么一个东西。

好吧,腾讯真的是良心,所有的数据放在一个接口里全部都能拿到了,这时候我们可以去分析接口的URL了,

看了URL,良心!

callback后边的不用管,删掉也能访问到,我们来分析一下前面的,url中包含了data中你要访问那些数据,可以按需获取,亲测有效

紧接着后边的几个单词,相信你也是比较数据,省市区,分别把省市区填进去就能获取到对应地区的数据了,是不是很激动。

看到URL中省市区的“乱码”,有一些新手就要捉急了,别怕,百度一下“URL编码转换”,把这串“乱码”解码一下,你就会发现意想不到的结果。

好了,思路有了,可以去写代码了,

2. 天气+

天气+:https://www.tianqi.com/beijing/

这个就相对比较简单了,因为分析加载过程真的很麻烦,而且这个网站的天气数据不知道放在哪个犄角旮旯里,可能在css或者js里,有找到的小伙伴留言给我说一下哈

来,咱们直接看页面请求的url,点击上边的链接,打开北京的天气,猜测,把/beijing/改为/shanghai/,继续访问这个新URL,打开了上海的天气,

那么由此可得,访问别的城市继续汉语拼音就行了,这个就比较简单了,每次访问不同的链接,再xpath提取就行了,

缺点:天气+上的数据有些少,如果你需要更多的天气数据,这个有点不够

3. 墨迹天气

墨迹天气:http://tianqi.moji.com/

同样,墨迹天气的加载数据分析也是很麻烦,所以咱们从访问URL入口来看看

访问北京的天气:http://tianqi.moji.com/weather/china/beijing/beijing

那么URL的组成就是中国/北京/北京,同理我们就可以访问别的城市的天气了,和第二种不同的是需要加上“省”,同理如果访问县/区级单位,在后边加上县/区的拼写就可以了

优点:数据多,各种场景,应有尽有。

4. 总结

第一种比较快,在写代码时不需要对HTML进行解析,在数据清洗上比较方便,第二种和第三种都是在访问url上做文章,都需要在数据库新建一张数据表基础数据表,也就是省市区的表,用来调用数据。

等代码写好了,到时候再来对代码进行分析。

发表评论

电子邮件地址不会被公开。 必填项已用*标注