1
0
Code Issues Pull Requests Projects Releases Wiki Activity GitHub Gitee

微博热搜不保存 simplify 和 regulation 数据

This commit is contained in:
程序员小墨 2022-07-30 22:07:23 +08:00
parent 590e209b2c
commit 51f6c2de1f
2 changed files with 82 additions and 76 deletions

View File

@ -112,11 +112,15 @@ npm i
`origin` 文件夹中的数据是通过Api接口获取到的原始数据没有经过任何处理。 `origin` 文件夹中的数据是通过Api接口获取到的原始数据没有经过任何处理。
<!--
`simplify` 文件夹中的数据是在原始数据的基础上,去除了部分冗余数据。 `simplify` 文件夹中的数据是在原始数据的基础上,去除了部分冗余数据。
-->
`final` 文件夹中的数据是从原始数据中抽离出的有用数据,并重新整理得到的。 `final` 文件夹中的数据是从原始数据中抽离出的有用数据,并重新整理得到的。
<!--
`regulation` 文件夹中的数据主要用于观测原始值与显示值不同的热搜,这部分热搜猜测可能是经过微博平台调控的。(这部分数据没有太大意义,可以忽略) `regulation` 文件夹中的数据主要用于观测原始值与显示值不同的热搜,这部分热搜猜测可能是经过微博平台调控的。(这部分数据没有太大意义,可以忽略)
-->
@ -154,20 +158,20 @@ npm i
hotband // 本项目 hotband // 本项目
├─ data // 爬取的数据(启动项目后自动创建) ├─ data // 爬取的数据(启动项目后自动创建)
├─ html // html 页面 ├─ html // html 页面
│ ├─ assets │ ├─ assets
│ │ ├─ css // CSS 样式 │ │ ├─ css // CSS 样式
│ │ │ └─ │ │ │ └─
│ │ ├─ image // 前端图片资源 │ │ ├─ image // 前端图片资源
│ │ │ ├─ ... │ │ │ ├─ ...
│ │ └─ js │ │ └─ js
│ │ └─ isMobile.js │ │ └─ isMobile.js
│ ├─ bilibili_hotband.html │ ├─ bilibili_hotband.html
│ ├─ bilibili_rank.html │ ├─ bilibili_rank.html
│ └─ weibo_hotband.html │ └─ weibo_hotband.html
├─ src // 数据爬取核心代码 ├─ src // 数据爬取核心代码
│ ├─ utils // 工具类代码 │ ├─ utils // 工具类代码
│ │ ├─ fileUtils.js │ │ ├─ fileUtils.js
│ │ └─ requestUtils.js │ │ └─ requestUtils.js
│ ├─ execute_command.js // 执行命令行脚本(暂时没用到) │ ├─ execute_command.js // 执行命令行脚本(暂时没用到)
│ ├─ get_bilibili_hotband.js // 获取 B站热搜榜 代码 │ ├─ get_bilibili_hotband.js // 获取 B站热搜榜 代码
│ ├─ get_bilibili_rank.js // 爬取 B站排行榜 代码 │ ├─ get_bilibili_rank.js // 爬取 B站排行榜 代码
@ -176,15 +180,15 @@ hotband // 本项目
├─ .env // 项目配置文件(需要自行创建) ├─ .env // 项目配置文件(需要自行创建)
├─ index.html // html 页面打开文件 ├─ index.html // html 页面打开文件
├─ index.js // node 项目启动入口文件 ├─ index.js // node 项目启动入口文件
├─ nodemon.json ├─ nodemon.json
├─ package-lock.json ├─ package-lock.json
├─ package.json ├─ package.json
├─ pm2 restart.bat ├─ pm2 restart.bat
├─ pm2 restart.sh ├─ pm2 restart.sh
├─ pm2 start.bat ├─ pm2 start.bat
├─ pm2 start.sh ├─ pm2 start.sh
├─ pm2 stop.bat ├─ pm2 stop.bat
├─ pm2 stop.sh ├─ pm2 stop.sh
└─ README.md // 项目自述文件 └─ README.md // 项目自述文件
``` ```
@ -195,28 +199,28 @@ hotband // 本项目
data 文件夹下的目录结构如下 data 文件夹下的目录结构如下
```bash ```bash
data data
├─ bilibili-hotband ├─ bilibili-hotband
│ ├─ final / origin │ ├─ final / origin
│ │ └─ xxxx // 年 │ │ └─ xxxx // 年
│ │ └─ xx // 月 │ │ └─ xx // 月
│ │ └─ xx // 日 │ │ └─ xx // 日
│ │ ├─ xxxxxxxx_xxxx.min.json // 年月日_时分秒.min.json │ │ ├─ xxxxxxxx_xxxx.min.json // 年月日_时分秒.min.json
│ └─ latest.json // 最新的json文件 │ └─ latest.json // 最新的json文件
├─ bilibili-rank ├─ bilibili-rank
│ ├─ origin │ ├─ origin
│ │ └─ xxxx // 年 │ │ └─ xxxx // 年
│ │ └─ xx // 月 │ │ └─ xx // 月
│ │ └─ xx // 日 │ │ └─ xx // 日
│ │ ├─ xxxxxxxx_xxxx.min.json // 年月日_时分秒.min.json │ │ ├─ xxxxxxxx_xxxx.min.json // 年月日_时分秒.min.json
│ └─ latest.json // 最新的json文件 │ └─ latest.json // 最新的json文件
└─ weibo-hotband └─ weibo-hotband
├─ origin / final / simplify ├─ origin / final / simplify
│ └─ xxxx // 年 │ └─ xxxx // 年
│ └─ xx // 月 │ └─ xx // 月
│ └─ xx // 日 │ └─ xx // 日
│ ├─ xxxxxxxx_xxxx.min.json // 年月日_时分秒.min.json │ ├─ xxxxxxxx_xxxx.min.json // 年月日_时分秒.min.json
├─ regulation ├─ regulation
│ └─ xxxx // 年 │ └─ xxxx // 年
│ └─ xx // 月 │ └─ xx // 月
│ └─ xx // 日 │ └─ xx // 日

View File

@ -61,11 +61,13 @@ async function main() {
* 过滤掉不需要的数据 * 过滤掉不需要的数据
*/ */
// hotgov // hotgov
delete data.hotgov["mblog"]; 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["note"]; // note word
delete data.hotgov["small_icon_desc_color"]; // icon_desc_color small_icon_desc_color 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 // band_list
for (let i = 0; i < data.band_list.length; i++) { for (let i = 0; i < data.band_list.length; i++) {
@ -154,51 +156,51 @@ async function main() {
}); });
/** // /**
* 只统计微博调控信息 // * 只统计微博调控信息
*/ // */
let convert2 = []; // let convert2 = [];
let total = 0; // let total = 0;
data.band_list.forEach(item => { // data.band_list.forEach(item => {
total += item.num; // total += item.num;
total -= item.raw_hot; // total -= item.raw_hot;
if (item.num - item.raw_hot == 0) return; // if (item.num - item.raw_hot == 0) return;
convert2.push([ // convert2.push([
`[${item.realpos}] ${item.word}${item.label_name}`, // `[${item.realpos}] ${item.word}【${item.label_name}】`,
`原始:${item.raw_hot} 显示:${item.num} 调控: ${item.num - item.raw_hot}` // `原始:${item.raw_hot} 显示:${item.num} 调控: ${item.num - item.raw_hot}`
]); // ]);
}); // });
fileUtils.saveJSON({ // fileUtils.saveJSON({
saveFolder: DATA_FOLDER, // saveFolder: DATA_FOLDER,
now: now, // now: now,
fileNameSuffix: `regulation`, // fileNameSuffix: `regulation`,
object: { // object: {
total_delta: total, // 所有调控值之和 // total_delta: total, // 所有调控值之和
data: convert2 // data: convert2
}, // },
compress: false, // compress: false,
uncompress: true // uncompress: true
}); // });
/** // /**
* 保存预处理后数据 // * 保存预处理后数据
*/ // */
// 过滤掉不需要的数据 // // 过滤掉不需要的数据
// band_list // // band_list
data.band_list.forEach(function (item) { // data.band_list.forEach(function (item) {
delete item["mblog"]; // delete item["mblog"];
}); // });
fileUtils.saveJSON({ // fileUtils.saveJSON({
saveFolder: DATA_FOLDER, // saveFolder: DATA_FOLDER,
now: now, // now: now,
fileNameSuffix: `simplify`, // fileNameSuffix: `simplify`,
object: data, // object: data,
compress: true, // compress: true,
// uncompress: true, // // uncompress: true,
// compress: false, // // compress: false,
uncompress: false, // uncompress: false,
}); // });
/** /**
@ -207,7 +209,7 @@ async function main() {
fs.writeFileSync(`${DATA_FOLDER}/latest.json`, JSON.stringify({ fs.writeFileSync(`${DATA_FOLDER}/latest.json`, JSON.stringify({
update_time: requestTimestamp, update_time: requestTimestamp,
update_time_friendly: now.substring(0, 19).replace(/T/g, " "), update_time_friendly: now.substring(0, 19).replace(/T/g, " "),
regulation: convert2, // regulation: convert2,
data: convert data: convert
})); }));
} }