200行Python代码实现疫情信息订阅

综述:2020年初湖北疫情爆发,获取信息成为了关键,而铺天盖地的疫情数据信息让人难以分辨。本案例主动从公开数据接口获取数据,进行处理可视化展现后,每日发送邮件至订阅邮箱,避免刷新闻、刷微博的信息焦虑,主动获取自己想要的信息。案例中综合应用python爬虫、数据处理、数据可视化、pdf操作、邮件操作等方面,串联相关的各类python常用库,可帮助熟练使用这些工具。文中代码可查看我的github项目仓库nCov_Info

一,实验环境

本地测试使用:Windows10系统,Python3.7.4

二,实验思路

1.从公开疫情数据接口获取相关数据;

2.进行数据分析处理;

3.绘制数据分析结果;

4.保存可视化展示结果至pdf;

5.每日定时讲分析结果pdf通过邮件发送给自己邮箱;

三,实验过程

1.数据获取

可以搜索到比较多的数据源接口,比如天行数据的数据接口,有在线测试接口,使用起来非常方便。但是json中的字段时常变动,无法在代码中固定下来。还有手工做爬虫获取数据的案例,如果网站做了反爬虫或者网站内容做了变更,容易失效。还有爬取丁香园的数据,并记录了时序数据的,如github上的案例。我们就用这个github上的数源做实验。测试过程中返回的json数据可使用在线浏览工具查看数据的结构,以便编写代码。查看案例中的说明,很容易编写处获取数据的测试代码,如下:

import requests
import json

url = "https://lab.ahusmart.com/nCoV/api/area?province=江西省&latest=0"
r = requests.get(url)
print(r.status_code)

print(json.loads(r.text))

返回结果如下:

200
{'results': [{'country': '中国', 'provinceName': '江西省', 'provinceShortName': '江西', 'confirmedCount': 900, 'suspectedCount': 0, 'curedCount': 187, 'deadCount': 1, 'cities': [{'cityName': '南昌', 'confirmedCount': 217, 'curedCount': 68, 'currentConfirmedCount': 149...

200表示返回成功,json格式的数据是返回当日江西省各地市确诊人数、疑似人数(这个数据貌似已经不使用了)、治愈人数和死亡人数。

2.数据分析

从接口获取的数据比较规范,无需做数据预处理,所以就直接拉去我关心的地区数据进行处理。我比较关心全国、武汉市、江西省这几个区域的历史和当日数据。json数据中的时间使用UNIX时间戳,可通过在线工具查看。具体代码查看load_data.py

3.数据展示

使用Pygal库很方便地展示数据,并生成可放缩的矢量图形svg,可以在不同尺寸的屏幕上显示。可参考《Python编程从入门到实践》中P329的案例。具体代码查看plot_data.py

nCov_info数据可视化.JPG

4.转换pdf

使用svglib和reportlab库将数据可视化生成的svg图像可转换为pdf,参考。但是这个方法对中文现实无法转换。具体代码查看plot_data.py。最后将生成的多个pdf文件合并为一个pdf,参考merge_pdfs.py

5.发送邮件

使用smtplib和email库将前面生成的pdf文件作为邮件附件发送到订阅邮箱,可以参考这篇文章。具体代码查看sendemail.py
接收到的邮件如下图:

nCov_info邮件.JPG

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 第一部分 创建爬虫 重点介绍网络数据采集的基本原理 : 如何用 Python 从网络服务器 请求信息,如何对服务器...
    万事皆成阅读 2,296评论 0 5
  • 今天大年三十都回老家吃的年夜饭,总体来说还是挺开心的,一家人团团圆圆的,真的很不错!希望以后会年年如此!
    李嘉驰阅读 115评论 0 0
  • (1)工作日志: 昨天一整天很快的做好了第一包和第二包的投标文件,今早发现表格的字体不对+10个合同的字体不对,第...
    赵心羽阅读 254评论 0 0
  • 圈地自萌,不定时更,新粉入坑,欢迎各种留言交流 背景架空,古风文,人物OCC,见谅见谅,手动比心 Cp:杨九郎×张...
    寂川JC阅读 754评论 0 0
  • 晚上吃饭,大家一起重温70周年国庆阅兵仪式,看得那真是心潮澎湃!从来没有像现在那样关注过,看到国家的强大,富强,感...
    ElingHo期待的美好日常阅读 126评论 0 0

友情链接更多精彩内容