前言 随着2021年深秋的到来,一波由旅行团所导致的疫情迅速在全国各地蔓延开来,兰州,我的家乡,在这次疫情中影响很大,为了能更好的为大家展现疫情发展的实时概括,我觉得开发一次项目,关于疫情发展的可视化界面。 采用技术
前端:百度地图API Leaflet D3.js VUE.js Echarts Antv Ajax 请求后端服务 后端:Express 搭建后台 并基于 MongoDB 数据库存储数据 数据分析:数据处理方面采用基于Python 的 HanLP 进行词法分析 爬虫:Scrapy
1 API接口:https://lab.isaaclin.cn/nCoV
代码语言:javascript复制请求接口:/nCoV/api/overall
请求方式:GET
返回自爬虫运行开始(2021年10月18日)至今,病毒研究情况以及兰州疫情概览,
可指定返回数据为最新发布数据或时间序列数据。
代码语言:javascript复制请求接口:/nCoV/api/provinceName
请求方式:GET
返回数据库内有数据条目的国家、省份、地区、直辖市列表。
示例
代码语言:javascript复制1. /nCoV/api/provinceName
返回中文版国家、省份、地区或直辖市列表。
2. /nCoV/api/provinceName?lang=en
返回英文版国家、省份、地区或直辖市列表。
请求接口:/nCoV/api/area
请求方式:GET
返回自2021年10月18日(爬虫开始运行)至今,兰州所有、地区或直辖市及世界其他国家的所有疫情信息变化的时间序列
数据(精确到市),能够追溯确诊/疑似感染/治愈/死亡人数的时间序列。
注:自2020年1月22日凌晨3:00至2020年1月24日凌晨3:40之间的数据只有省级数据,自2020年1月24日起,
丁香园才开始统计并公开市级数据。
示例
代码语言:javascript复制1. /nCoV/api/area?latest=1&province=湖北省
返回湖北省疫情最新数据
2. /nCoV/api/area?latest=1
返回中国全部城市及世界其他国家疫情最新数据
请求接口:/nCoV/api/news
请求方式:GET
返回所有与疫情有关的新闻信息,包含数据来源以及数据来源链接。
按发布顺序倒序排列。
示例
代码语言:javascript复制1. /nCoV/api/news?page=1&num=10
返回所有地区范围内第1页的新闻,每页10则。
请求接口:/nCoV/api/rumors
请求方式:GET
返回与疫情有关的谣言以及丁香园的辟谣。
按发布顺序倒序排列。
示例
代码语言:javascript复制1. /nCoV/api/rumors?page=1&num=10&rumorType=1
返回第2页可信信息,每页10则,即返回所有可信信息的第11至20则。
本项目为2021新型冠状病毒(COVID-19/2019-nCoV)德尔塔疫情状况的实时爬虫。 数据来源:丁香园。
2 项目简介
本项目每分钟访问并爬取一次数据,储存在MongoDB中,并且保存所有历史数据的更新,希望能够在未来回溯病情时能有所帮助。
3 数据异常
本项目爬虫仅从丁香园公开的数据中获取并储存数据,并不会对异常值进行判断和处理,因此如果将本数据用作科研目的,请自己对数据进行清洗。因为丁香园的数据为人工手录入的,所以如果存在什么问题可以反馈。
4 关于与前端结合采取的方案
1.如果仅仅通过API在网页端实现实时数据可视化,可以参考shfshanyue/2019-ncov项目。该项目能够在网页后端每隔30分钟自动运行爬虫,获取最新数据,并渲染在前端直接返回,不会受到API数据返回速度的影响。 2.如果您使用R语言对数据进行分析,可以参考pzhaonet/ncovr项目,该项目整合通过GitHub数据仓库/API数据提取两种模式。