本文来源自公众号:数据管道(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。写了个爬虫定期推送官方数据给亲友们,如有需求可告知邮箱地址及希望收到推送时间 。


说明

本文所系为真实个人邮箱,源码中有所体现,不做全部开放,有完整源码需求的请私信。




©著作权归作者所有:来自51CTO博客作者mob604756e834f7的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 【大数据成神之路】第一版更新完毕
  2. 我看好数据湖的未来,但不看好数据湖的现在
  3. 什么是Zero-Copy?
  4. Java NIO?看这一篇就够了!
  5. 「双非」研究生数据分析春招心路历程。
  6. 数据湖解决方案关键一环,IceBerg会不会脱颖而出?
  7. 《从0到1学习Flink》—— Flink Data transformation(转换)
  8. 电脑手机资料数据误删如何快速恢复?
  9. 《从0到1学习Flink》—— Data Source 介绍

随机推荐

  1. 开源终端Android Terminal Emulator
  2. 系出名门Android(2) - 布局(Layout)和菜
  3. Freeline 一款 Android平台上的秒级编译
  4. Android下使用Socket连接网络电脑
  5. LinearLayout 内部控件居中
  6. android系统权限关机重启
  7. 【Android】Android(安卓)签名相关问题
  8. CoordinatorLayout使用自定义Behavior实
  9. NestedScrollView中webview被点击,NestedS
  10. 占位的实现和间接实现从快捷建中启动一个