• 欢迎关注我的微信公众号!点击

天气信息爬虫 & Python阿里云短信平台的使用

Python 大坚果 7年前 (2018-06-20) 9437次浏览 0个评论 扫描二维码

家里老人比较关注天气变化,但是又不会使用智能手机随时上网查看天气信息,只能观看天气预报或者拨打天气热线查看。何不写个程序,每天自动给老人发送短信,告诉天气信息呢?

Google 查询后,发现网上有很多已封装好的 API 接口,但试了试又不大满意,主要有以下两方面的问题:

  • 地域范围太大,最低也是以县级市为单位预报天气
  • 天气信息准确性不可知,数据来源未知,多久更新一次也未知

因此,决定自己动手写一个,部署到阿里云服务器上。主要有以下 3 个模块构成:

  • 天气数据爬取模块:即从网上爬取天气信息,并存储到数据库中
  • 数据调用模块:使用 Flask Web 模块,定制 API 接口,用来读取数据 http://api.yuenshui.cn/weather/。当然了,在短信发送模块中直接从数据库中调取数据也是可以的,但使用 API 的方法可以更加方便地复用,而且可随时通过网络查询爬虫数据有没有问题,甚至都不要设置邮件或者短信的异常提醒。
  • 短信发送模块:使用阿里云的短信接口,调用 api 数据并发送短信。主要查看官方文档即可

本文源代码存储于 Github 上: https://github.com/enshui/weather_notice

天气数据爬取模块

天气预报数据,使用的是中央气象台官方网站,这能够保证数据的可靠性和及时性。根据个人需要,这里仅调取了未来 5 天的日期/天气情况/风向/风力/最高最低气温几个信息。而且,中央气象台的天气信息,是可以精确到乡镇的,非常契合我的需求。

天气信息爬虫 & Python阿里云短信平台的使用

由于网站未做任何反爬措施且爬取的内容较少,这里使用的requests的方法,解析库使用的是 xpath。数据存储,使用的是mongodb数据库。如下是爬虫部分的代码,可直接运行,爬取的是我家所在镇上每小时的天气信息~

API 调用模块

该模块的作用是,将调取的数据制作成自己的 api,用于进一步的使用。 我做的 api 网址是:http://api.yuenshui.cn/weather/

输入验证码查看隐藏内容:

扫描二维码关注本站微信公众号或者在微信里搜索:畅所欲言的小笔记
回复 验证码 获取验证码
weixin

墨痕|畅所欲言的小笔记 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:天气信息爬虫 & Python阿里云短信平台的使用
喜欢 (5)

您必须 登录 才能发表评论!