使用Node获取百度最新疫情信息,本地保存为json文件

目标网站:

https://voice.baidu.com/act/newpneumonia/newpneumonia/

目标数据:

获取如下图8条数据

image.png

代码展示(index.js):

const fs=require('fs');
const https=require('https'); 

const getnewpneumonia=function(){
    
        const req = https.get('https://voice.baidu.com/act/newpneumonia/newpneumonia/', (res) => {
              res.setEncoding('utf8');  //二进制binary
              let Data=''
              res.on('data', (d) => {
                  Data += d;
              }).on('end',()=>{
                const data=Data.match(/(?<=\"summaryDataIn\":\{)[\s\S]*?(?=\})/gi).toString()
                let obj=JSON.parse(`{${data}}`);
                let arr=[]
                arr[0]={title:'现有确诊',num:obj['curConfirm']}
                arr[1]={title:'无症状',num:obj['asymptomatic']}
                arr[2]={title:'现有疑似',num:obj['unconfirmed']}
                arr[3]={title:'现有重诊',num:obj['icu']}
                arr[4]={title:'累计确诊',num:obj['confirmed']}
                arr[5]={title:'境外输入',num:obj['overseasInput']}
                arr[6]={title:'累计治愈',num:obj['cured']}
                arr[7]={title:'累计死亡',num:obj['died']}
                

                  fs.writeFile(`./epidemic.json`,JSON.stringify(arr),  ress=> {
                    console.log('epidemic.json生成成功')
                  });
              })
          });
        req.on('error', (e) => {
          console.error(e);
        })
    
        req.end();
} 

getnewpneumonia();

 

使用

终端:node index.js

 

 

posted @ 2020-04-24 08:58  mingL  阅读(452)  评论(0编辑  收藏  举报