(以下数据仅供参考)
脚本文件:app.js
const express = require('express');
const request = require('request');
const axios = require('axios');
const fs = require('fs');
const app = express();
const url = 'https://3g.dxy.cn/newh5/view/pneumonia';
const getStatisticsService = (data) => {
let statisticObj = JSON.parse(data.match(/window.getStatisticsService = (.*?)}catch/)[1])
fs.writeFileSync('./data/statistic.json',JSON.stringify(statisticObj,null,2),(err)=>{
console.log('写入成功')
})
}
const getAreaStat = (data) => {
const areaObj = JSON.parse(data
.match(/window.getAreaStat = (.*?)}catch/)[1])
fs.writeFileSync('./data/province.json', JSON.stringify(areaObj, null, 2), (err) => {
console.log('写入成功')
})
}
axios.request(url).then(({
data: html
}) => {
getStatisticsService(html)
getAreaStat(html);
})
app.listen(3000, () => {
console.log('app listening port is 3000')
})
statistic.json文件:
{
"id": 1,
"createTime": 1579537899000,
"modifyTime": 1580140453000,
"infectSource": "野生动物,可能为中华菊头蝠",
"passWay": "未完全掌握,存在人传人、医务人员感染、一定范围社区传播",
"imgUrl": "https://img1.dxycdn.com/2020/0123/733/3392575782185696736-73.jpg",
"dailyPic": "https://img1.dxycdn.com/2020/0127/350/3393218957833514634-73.jpg",
"summary": "",
"deleted": false,
"countRemark": "",
"confirmedCount": 2857,
"suspectedCount": 5794,
"curedCount": 56,
"deadCount": 82,
"virus": "新型冠状病毒 2019-nCoV",
"remark1": "易感人群: 暂时不明,病毒存在变异可能",
"remark2": "潜伏期: 1~14 天均有,平均 10 天,潜伏期内存在传染性",
"remark3": "",
"remark4": "",
"remark5": "",
"generalRemark": "疑似病例数来自国家卫健委数据,目前为全国数据,未分省市自治区等",
"abroadRemark": ""
}
province.json文件:
{
"provinceName": "湖北省",
"provinceShortName": "湖北",
"confirmedCount": 1423,
"suspectedCount": 0,
"curedCount": 45,
"deadCount": 76,
"comment": "",
"cities": [
{
"cityName": "武汉",
"confirmedCount": 698,
"suspectedCount": 0,
"curedCount": 42,
"deadCount": 63
},
]
......
}