好久没写博客了,差点忘记我还有个网站在这。。。先说一下为什么写篇文章吧,由于最近有关肺炎的事弄得人心惶惶,我宅在家,网上刷着掘金,发现好多人都为肺炎做出了自己的贡献,我想闲着也是闲着,也写个东西来统计肺炎的相关情况吧。
下面先放几张效果图,在床上随便写的,用的uniapp
框架,下面是app的界面,微信小程序和网页的都一样。
界面都写好了,可这数据去哪弄呢,幸好,已经有大哥用node写好了爬取丁香园数据的api,但api再好,也是挂在别人的服务器上,要是他一删,那我们不是空白白的一片,尴尬至极。而且他那个接口的地址是http的,在微信小程序里用真机调试更是什么都没有。(微信小程序需要所有请求的地址是https)。
我们也不用东找西找,人家部署的获取肺炎信息的node项目就在下面:https://github.com/programmerauthor/spread-information
话不多说,直接上去干吧。首先我们把人家的项目下载下来,不用多想,先在本地跑一遍憋。
首先全局安装pm2,并安装好依赖
npm i pm2 -g
npm i
然后在代码目录下执行
pm2 start pm2Config.json
看到下面这个就知道成功了。
ok,没什么难度嘛,可是我们该怎么部署到服务器上,让大家都可以访问呢?我的服务器是用阿里云的,安装了宝塔面板。这个宝塔面板还挺好用的,也是免费的。按照网上说,需要下载一个PM2管理器的软件,在左侧的软件管理下就可以下载了。这是一个可视化工具,坑有点多,我们直接用终端吧,命令行舒服些。
[notice]非常重要的一步,centoS上是缺少一些依赖的,在本地上跑的飞起,服务器上可能就会报一大堆地错误。[!notice]复制以下内容安装依赖:
yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 ipa-gothic-fonts xorg-x11-fonts-100dpi xorg-x11-fonts-75dpi xorg-x11-utils xorg-x11-fonts-cyrillic xorg-x11-fonts-Type1 xorg-x11-fonts-misc
上面这一步非常重要,我就是因为这个原因搞了好几个小时。
项目中的端口是3001,所以我们要在防火墙里开放这个端口。
我问了一下作者,其实是有两种模式的:
第一种是只获取最新的一段数据,使用这种模式把 api.js 里面的时间线函数注释掉。重启api服务。
第二种是全量模式,获取所有的时间线,这个数据量比较大,有一定延迟。使用这种模式新启动一个服务。 pm2 start more.js --no-autorestart -c "/2 *" --name more
下面就是全量模式的开启方法。第一种只需要输入下面的第一,三步。
pm2 start app.js --no-autorestart -c "*/2 * * * *" --name infos # 启动2分钟刷新一次信息
pm2 start more.js --no-autorestart -c "*/2 * * * *" --name more
pm2 start api.js # 启动api接口
最后大功告成了。
例如:http://feiyan.libingtao.cn:3001/data/getTimelineService
下面的列表可以请求不同的信息。
API 列表
接口名 | 请求方式 | 接口描述 | |
---|---|---|---|
data/getTimelineService | GET | 按时间线获取事件 | |
data/getStatisticsService | GET | 获取整体统计信息 | |
data/getAreaStat/:provice | GET | 获取指定省份信息,例如:/data/getAreaStat/山东 | |
data/getIndexRumorList | GET | 最新辟谣 | |
data/getIndexRecommendList | GET | 最新防护知识 | |
data/getWikiList | GET | 最新知识百科 | |
data/getEntries | GET | 诊疗信息 | |
data/getListByCountryTypeService1 | GET | 全国省份级患者分布数据 | |
data/getListByCountryTypeService2 | GET | 全球海外其他地区患者分布数据 | |
data/getNewest/:lastid | GET | 获取最新事件lastid 代表上次获取到的最后的id,例如:/data/getNewest/281将会返回id为281的事件之后发生的事件集合。 |
笑了笑了,这么多垃圾评论