zoukankan      html  css  js  c++  java
  • 疫情实时大数据报告(利用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 辟谣信息

  • 相关阅读:
    git 错误 fatal: Not a valid object name: 'master'.
    SQL: select一组数据,concat同表同列的数据
    Linux curl usage
    Regular Expression
    浅谈Linux Process status,环境锁
    浅谈Manpage
    Java文件读写详解。 附txt乱码问题, html乱码问题
    在ubuntu 18.04下装有线守护wg
    centOS 7 换ssh端口
    如何把DEBIAN变成UBUNTU-DESKTOP最少化安装
  • 原文地址:https://www.cnblogs.com/zshno1/p/12358881.html
Copyright © 2011-2022 走看看