标签:疫情 api 到达 源码 邮箱 推送 数据 latest
本文来源自公众号:数据管道(id:adc9556)
作者:宝器&fyq
2020年“地狱”难度的开局,属实一下子还没反应过来事情就发生了。截止到1月31日,新型冠状病毒肺炎累计确诊的人数已是“非典”的两倍之多,广大被“禁足”的网友们在这个春节里时刻心系着病毒的传播范围,短短数日,却蔓延迅速,全国染红。
一边是不断增长的确诊人数,而另一边是各种刷新三观的新闻爆出,让大家的心情跟坐过山车一样。
你可能已经看过各种“真相”:
疾控中心早已知道“人传人”,但却刻意隐...
国家院士早发表论文“人传人”,而你却浑然不....
双黄连对新型冠性....抑制
武汉某会钱“用不出去”
非典专家认为SARS Cov是非自然方式产生(美帝主义的阴谋)
此外,封城越久,寄情于网络越深,然而疫情消息满天飞,更有些不实言论,看多了徒增焦虑。且这届中老年组实在太难带了。
为避免他们过度恐慌或掉以轻心,同时小试下修炼已久的Python降龙十八掌,基于这两方面考虑想到一个体面又不失优雅的办法:
拿上Python花2小时写了采集、分析、并定点推送官方数据的代码,每天定时推送官方数据和亲友身边城市的疫情实时数据分布图,让大家理性关注、科学防范,做好疫情的自我防护。
先来个效果图
这个idea拆解为三个部分:
1、数据获取
2、数据处理
3、数据推送
数据获取:
目前新浪、腾讯以及人民日报&丁香园联手等单位都推出了疫情地图,有人民日报在,那必须最权威了。锁定主要从该网站取数据后,通过网页工具可发现用get请求便可取到数据了。好消息是有的同志预见了类似我这样群众跃跃欲试的热情,遂公开了API接口。
请求接口:/nCoV/api/area
请求方式:GET
返回数据如下:
采用API接口的源码如下:
这里也贴上最初无API情况下的尝试:
数据处理:
包括数据清洗和图表制作两大部分。
数据清洗:读取到的数据类型为由dict组成的list数据。由于要详细分析省内各地市情况所以将各省的cities内的数据读取出进行分析,可以在这里将各省确诊案例或疑似案例排名前5的城市及详情列出。
图表制作:可采用Pyecharts和matplotlib两种方式生成图表。
用pyecharts画同心圆饼图:
(限于篇幅,这里已湖北、广东省为例图)
用matplotlib画趋势图或地图:
数据推送
本工具采用SMTP邮箱服务器进行信息推动。SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。python的smtplib提供了一种很方便的途径发送电子邮件。它对smtp协议进行了简单的封装。
本案例的发送邮件模块源码如下:
踩坑提醒!
这款API大概有以下3种使用方法:
1. /nCoV/api/area?latest=1&province=湖北省返回湖北省疫情最新数据
2. /nCoV/api/area?latest=0&province=湖北省返回湖北省疫情的时间序列数据
3. /nCoV/api/area?latest=1返回中国全部城市及世界其他国家疫情最新数据
建议尽量采用第2种,latest=0读时序数据的方式。不要问为啥,因为我也很绝望,用latest=1偶尔读不到数据,不信看下面这个31日早上调用结果的截图,差点还以为复活了。毕竟数据是很严肃的事,容不得半点虚。
总结:
疫情信息流爆炸,看了徒增焦虑,技术服务生活,有需求的地方就有idea。写了个爬虫定期推送官方数据给亲友们,如有需求可告知邮箱地址及希望收到推送时间 。
说明:
本文所系为真实个人邮箱,源码中有所体现,不做全部开放,有完整源码需求的请私信。
标签:疫情,api,到达,源码,邮箱,推送,数据,latest 来源: https://blog.51cto.com/15127516/2682719
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。