前几天河南天天下雨,在家憋得难受就尝试写一个爬取全国天气数据的爬虫,在此分享详细过程。
(图一)
打开上图所标记的页面得到Windows官网的天气数据(图一)
(图二)
老样子,此处我们按下F12打开开发者模式(此处用的Edge浏览器演示)(图三),为了直观了解服务器对我们的请求是如何响应的,可以在搜索位置处随便输入一个城市(此处输入我老家漯河为例),输入城市后点击搜索,此时注意看开发者模式下,服务器发送的文件,我们的目标数据就在这些文件中。在打开的开发者模式栏中,慢慢寻找所需要的数据(比如城市,温度,风速,天气状况等,这些数据就是我们要爬取的数据)
(图三)
我们需要的数据其实在图三红框中的第一个文件中,可以点击它,查看它的具体内容(见图四)
(图四)在图四中用三种颜色箭头标明网页上的内容与右侧开发者模式下的文件内内容的对应关系
在这个实例中包含漯河市天气信息的网址是:https://api.msn.cn/weather/overview/user?......(该网址过长未全部显示)
于是就有一个问题,如何获得除漯河市以外的其他城市的天气信息呢?总不能一个一个输吧?
我们不妨再在搜索框中输入另一个城市,按照同样套路获得包含所输入的另外一个城市的天气信息的网址(此处用郑州作为另一个城市)。
我们可以试着比较包含漯河市天气信息的网址与包含郑州市天气信息的网址在结构上有什么区别,从而反推出Windows天气官网的天气信息呈现原理。
在图五中我们对这两个网址进行对比