疫情實時大數據報告(利用nodejs)


一轉眼2020年,工作三年是時候向全棧工程師出發了,大家放心頭發還在。話不多少進入正題

一、看一下效果

 

 

 

 

 

 

 

二、看一下代碼

相關的node代碼:

這里主要利用node的爬蟲技術,爬的別人的數據。cheerio十分強大了,移步cheerio文檔

 

 

var originRequest = require('request');
var iconv = require('iconv-lite');
var express = require('express');
var cheerio = require("cheerio");
var bodyParser = require('body-parser');

var app = express();
app.use(express.static("./"));
app.use(bodyParser.json()); 
app.use(bodyParser.urlencoded({
    extended: true
}));
var headers = {
    'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.65 Safari/537.36'
}
var url = 'https://voice.baidu.com/act/newpneumonia/newpneumonia';
app.all("*", function (req, res, next) {
    //設置允許跨域的域名,*代表允許任意域名跨域
    res.header("Access-Control-Allow-Origin", "*");
    //允許的header類型
    res.header("Access-Control-Allow-Headers", "content-type");
    //跨域允許的請求方式 
    res.header("Access-Control-Allow-Methods", "DELETE,PUT,POST,GET,OPTIONS");
    if (req.method.toLowerCase() == 'options')
        res.send(200); //讓options嘗試請求快速結束
    else
        next();
})
function Request(url, callback) {
    var options = {
        url: url,
        encoding: null,
        headers: headers
    }
    originRequest(options, callback)
}
app.get("/get", function (request, response) {
  Request(url, function (err, res, body) {
      if (err) {
          console.log(err);
      }
       var html = iconv.decode(body, 'gb2312')
       var $ = cheerio.load(html, {
           decodeEntities: false
       })
      response.json($('#captain-config').html()); 
    })
});
app.listen(3030, function () {
    console.log('localhost:3030')
});




 

 

三、接口數據

參數含義
caseList 國內省市疫情
caseOutsideList 國外市區疫情
mapLastUpdatedTime 更新時間
summaryDataIn 國內疫情
summaryDataOut 國外疫情
trend 數據趨勢
trumpet 公告
hotwords 熱詞
knowledges 防疫知識
gossips 辟謠信息

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM