From 51f6c2de1faf80e9e8314003c3a7d2779817db94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E5=B0=8F=E5=A2=A8?= <2291200076@qq.com> Date: Sat, 30 Jul 2022 22:07:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E5=8D=9A=E7=83=AD=E6=90=9C=E4=B8=8D?= =?UTF-8?q?=E4=BF=9D=E5=AD=98=20simplify=20=E5=92=8C=20regulation=20?= =?UTF-8?q?=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 58 ++++++++++++----------- src/get_weibo_hotband.js | 100 ++++++++++++++++++++------------------- 2 files changed, 82 insertions(+), 76 deletions(-) diff --git a/README.md b/README.md index 96b8549..28524b5 100644 --- a/README.md +++ b/README.md @@ -112,11 +112,15 @@ npm i `origin` 文件夹中的数据是通过Api接口获取到的原始数据,没有经过任何处理。 + `final` 文件夹中的数据是从原始数据中抽离出的有用数据,并重新整理得到的。 + @@ -154,20 +158,20 @@ npm i hotband // 本项目 ├─ data // 爬取的数据(启动项目后自动创建) ├─ html // html 页面 -│ ├─ assets +│ ├─ assets │ │ ├─ css // CSS 样式 -│ │ │ └─ +│ │ │ └─ │ │ ├─ image // 前端图片资源 -│ │ │ ├─ ... -│ │ └─ js -│ │ └─ isMobile.js -│ ├─ bilibili_hotband.html -│ ├─ bilibili_rank.html -│ └─ weibo_hotband.html +│ │ │ ├─ ... +│ │ └─ js +│ │ └─ isMobile.js +│ ├─ bilibili_hotband.html +│ ├─ bilibili_rank.html +│ └─ weibo_hotband.html ├─ src // 数据爬取核心代码 │ ├─ utils // 工具类代码 -│ │ ├─ fileUtils.js -│ │ └─ requestUtils.js +│ │ ├─ fileUtils.js +│ │ └─ requestUtils.js │ ├─ execute_command.js // 执行命令行脚本(暂时没用到) │ ├─ get_bilibili_hotband.js // 获取 B站热搜榜 代码 │ ├─ get_bilibili_rank.js // 爬取 B站排行榜 代码 @@ -176,15 +180,15 @@ hotband // 本项目 ├─ .env // 项目配置文件(需要自行创建) ├─ index.html // html 页面打开文件 ├─ index.js // node 项目启动入口文件 -├─ nodemon.json -├─ package-lock.json -├─ package.json -├─ pm2 restart.bat -├─ pm2 restart.sh -├─ pm2 start.bat -├─ pm2 start.sh -├─ pm2 stop.bat -├─ pm2 stop.sh +├─ nodemon.json +├─ package-lock.json +├─ package.json +├─ pm2 restart.bat +├─ pm2 restart.sh +├─ pm2 start.bat +├─ pm2 start.sh +├─ pm2 stop.bat +├─ pm2 stop.sh └─ README.md // 项目自述文件 ``` @@ -195,28 +199,28 @@ hotband // 本项目 data 文件夹下的目录结构如下 ```bash -data -├─ bilibili-hotband -│ ├─ final / origin +data +├─ bilibili-hotband +│ ├─ final / origin │ │ └─ xxxx // 年 │ │ └─ xx // 月 │ │ └─ xx // 日 │ │ ├─ xxxxxxxx_xxxx.min.json // 年月日_时分秒.min.json │ └─ latest.json // 最新的json文件 -├─ bilibili-rank -│ ├─ origin +├─ bilibili-rank +│ ├─ origin │ │ └─ xxxx // 年 │ │ └─ xx // 月 │ │ └─ xx // 日 │ │ ├─ xxxxxxxx_xxxx.min.json // 年月日_时分秒.min.json │ └─ latest.json // 最新的json文件 -└─ weibo-hotband - ├─ origin / final / simplify +└─ weibo-hotband + ├─ origin / final / simplify │ └─ xxxx // 年 │ └─ xx // 月 │ └─ xx // 日 │ ├─ xxxxxxxx_xxxx.min.json // 年月日_时分秒.min.json - ├─ regulation + ├─ regulation │ └─ xxxx // 年 │ └─ xx // 月 │ └─ xx // 日 diff --git a/src/get_weibo_hotband.js b/src/get_weibo_hotband.js index bbe9d5a..af69e84 100644 --- a/src/get_weibo_hotband.js +++ b/src/get_weibo_hotband.js @@ -61,11 +61,13 @@ async function main() { * 过滤掉不需要的数据 */ // hotgov - delete data.hotgov["mblog"]; - // 重复字段只保留一个 - delete data.hotgov["note"]; // note word - delete data.hotgov["small_icon_desc"]; // icon_desc small_icon_desc - delete data.hotgov["small_icon_desc_color"]; // icon_desc_color small_icon_desc_color + if (data.hotgov) { + delete data.hotgov["mblog"]; + // 重复字段只保留一个 + delete data.hotgov["note"]; // note word + delete data.hotgov["small_icon_desc"]; // icon_desc small_icon_desc + delete data.hotgov["small_icon_desc_color"]; // icon_desc_color small_icon_desc_color + } // band_list for (let i = 0; i < data.band_list.length; i++) { @@ -154,51 +156,51 @@ async function main() { }); - /** - * 只统计微博调控信息 - */ - let convert2 = []; - let total = 0; - data.band_list.forEach(item => { - total += item.num; - total -= item.raw_hot; - if (item.num - item.raw_hot == 0) return; - convert2.push([ - `[${item.realpos}] ${item.word}【${item.label_name}】`, - `原始:${item.raw_hot} 显示:${item.num} 调控: ${item.num - item.raw_hot}` - ]); - }); - fileUtils.saveJSON({ - saveFolder: DATA_FOLDER, - now: now, - fileNameSuffix: `regulation`, - object: { - total_delta: total, // 所有调控值之和 - data: convert2 - }, - compress: false, - uncompress: true - }); + // /** + // * 只统计微博调控信息 + // */ + // let convert2 = []; + // let total = 0; + // data.band_list.forEach(item => { + // total += item.num; + // total -= item.raw_hot; + // if (item.num - item.raw_hot == 0) return; + // convert2.push([ + // `[${item.realpos}] ${item.word}【${item.label_name}】`, + // `原始:${item.raw_hot} 显示:${item.num} 调控: ${item.num - item.raw_hot}` + // ]); + // }); + // fileUtils.saveJSON({ + // saveFolder: DATA_FOLDER, + // now: now, + // fileNameSuffix: `regulation`, + // object: { + // total_delta: total, // 所有调控值之和 + // data: convert2 + // }, + // compress: false, + // uncompress: true + // }); - /** - * 保存预处理后数据 - */ - // 过滤掉不需要的数据 - // band_list - data.band_list.forEach(function (item) { - delete item["mblog"]; - }); - fileUtils.saveJSON({ - saveFolder: DATA_FOLDER, - now: now, - fileNameSuffix: `simplify`, - object: data, - compress: true, - // uncompress: true, - // compress: false, - uncompress: false, - }); + // /** + // * 保存预处理后数据 + // */ + // // 过滤掉不需要的数据 + // // band_list + // data.band_list.forEach(function (item) { + // delete item["mblog"]; + // }); + // fileUtils.saveJSON({ + // saveFolder: DATA_FOLDER, + // now: now, + // fileNameSuffix: `simplify`, + // object: data, + // compress: true, + // // uncompress: true, + // // compress: false, + // uncompress: false, + // }); /** @@ -207,7 +209,7 @@ async function main() { fs.writeFileSync(`${DATA_FOLDER}/latest.json`, JSON.stringify({ update_time: requestTimestamp, update_time_friendly: now.substring(0, 19).replace(/T/g, " "), - regulation: convert2, + // regulation: convert2, data: convert })); }