2022-07-25 09:45:39 +08:00
|
|
|
|
# 微博热搜数据爬取工具
|
|
|
|
|
|
|
|
|
|
> 本仓库中代码仅供学习研究使用,不得用于违法用途。
|
2022-07-25 10:37:49 +08:00
|
|
|
|
>
|
2022-07-25 10:01:27 +08:00
|
|
|
|
> 数据来自微博,本项目不对数据真实性做验证,使用数据时请遵守微博平台的相关限制要求。
|
2022-07-25 09:45:39 +08:00
|
|
|
|
|
|
|
|
|
## 简介
|
|
|
|
|
|
|
|
|
|
您可以将本项目代码部署在服务器上(在本地运行也可),程序会每隔一分钟拉取一次微博热搜数据,并保存为 `json` 格式文件。
|
|
|
|
|
|
2022-07-25 18:01:26 +08:00
|
|
|
|
## 数据预览
|
|
|
|
|
|
|
|
|
|
在部署并启动项目后,您可以在浏览器中打开 `html/index.html` 文件实时预览当前热搜。
|
|
|
|
|
|
2022-07-25 10:01:27 +08:00
|
|
|
|
## 数据来源
|
|
|
|
|
|
|
|
|
|
微博热搜接口:https://weibo.com/ajax/statuses/hot_band
|
|
|
|
|
|
|
|
|
|
该接口来自微博web端,网址:https://weibo.com/newlogin?tabtype=search
|
|
|
|
|
|
|
|
|
|
## 运行环境
|
|
|
|
|
|
|
|
|
|
原理上来说 Windows 下和 Linux 都可运行,目前仅在 Windows 下测试过,暂未在 Linux 系统下测试。
|
|
|
|
|
|
|
|
|
|
项目使用 node 开发,以下部署流程默认您已安装了 `Git`、`Nodejs`。
|
|
|
|
|
|
2022-07-25 09:45:39 +08:00
|
|
|
|
## 部署
|
|
|
|
|
|
|
|
|
|
1. 克隆仓库(或直接下载压缩包)
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
git clone https://git.only4.work/coder-xiaomo/weibo-hotband
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. 安装依赖
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
npm i
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3. 修改配置文件
|
|
|
|
|
|
2022-07-25 10:01:27 +08:00
|
|
|
|
将项目目录下的 `.env.example` 文件复制一份,并改名为 `.env`,使用文本编辑器打开(例如:记事本、VS Code、vim等均可),根据其中的注释说明来进行配置即可。
|
2022-07-25 09:45:39 +08:00
|
|
|
|
|
2022-07-25 10:37:49 +08:00
|
|
|
|
> 如果不创建 .env 文件,项目启动时会报如下错误并退出。
|
|
|
|
|
> ```bash
|
|
|
|
|
> [ERROR] .env file not found!
|
|
|
|
|
> ```
|
|
|
|
|
|
2022-07-25 09:45:39 +08:00
|
|
|
|
4. 启动项目
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# 直接运行
|
|
|
|
|
# node index.js
|
|
|
|
|
|
|
|
|
|
# 使用 pm2
|
|
|
|
|
# pm2 start index.js --name weibo-hotband-bot
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
5. 停止项目
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
# 使用 node index.js 命令直接运行的项目可以通过 `Ctrl + C` 停止
|
|
|
|
|
|
|
|
|
|
# 使用 pm2 运行的可以使用以下两行命令来停止和从列表中删除项目
|
|
|
|
|
# pm2 stop weibo-hotband-bot
|
|
|
|
|
# pm2 delete weibo-hotband-bot
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 说明
|
|
|
|
|
|
2022-07-25 10:37:49 +08:00
|
|
|
|
项目爬取的数据默认保存在项目目录下的 data 文件夹中,您也可以通过修改 `.env` 文件中的 `DATA_FOLDER` 参数值来自定义数据保存路径。
|
|
|
|
|
|
|
|
|
|
在程序运行后,该文件夹下会出现 `latest.json` 文件及其余几个文件夹,这些子文件夹中的文件按照以下格式保存:`年/月/日/年月日_时分.json`。
|
|
|
|
|
|
|
|
|
|
每次爬取后,`latest.json`中的数据都会被覆盖为最新的热搜数据。
|
|
|
|
|
|
|
|
|
|
`origin` 文件夹中的数据是通过Api接口获取到的原始数据,没有经过任何处理。
|
|
|
|
|
|
|
|
|
|
`simplify` 文件夹中的数据是在原始数据的基础上,去除了部分冗余数据。
|
|
|
|
|
|
|
|
|
|
`final` 文件夹中的数据是从原始数据中抽离出的有用数据,并重新整理得到的。
|
|
|
|
|
|
|
|
|
|
`regulation` 文件夹中的数据主要用于观测原始值与显示值不同的热搜,这部分热搜猜测可能是经过微博平台调控的。(这部分数据没有太大意义,可以忽略)
|