一轉眼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 辟謠信息