a
This commit is contained in:
@@ -0,0 +1,109 @@
|
||||
# Playwright Hotspots - 中文平台热点抓取
|
||||
|
||||
使用 Puppeteer/Playwright 无头浏览器抓取微博、B站、知乎等平台的热点数据。
|
||||
|
||||
## 项目结构
|
||||
|
||||
```
|
||||
playwright-hotspots/
|
||||
├── README.md
|
||||
├── package.json
|
||||
├── config/
|
||||
│ └── browser.js # 浏览器配置
|
||||
├── src/
|
||||
│ ├── platforms/
|
||||
│ │ ├── weibo.js # 微博热搜
|
||||
│ │ ├── bilibili.js # B站热搜
|
||||
│ │ ├── zhihu.js # 知乎热榜
|
||||
│ │ └── xiaohongshu.js # 小红书搜索
|
||||
│ └── utils/
|
||||
│ └── helpers.js # 工具函数
|
||||
├── scripts/
|
||||
│ ├── get-weibo-hot.js # 获取微博热搜
|
||||
│ ├── get-bilibili-trending.js # 获取B站热搜
|
||||
│ └── get-all-hotspots.js # 获取所有平台热点
|
||||
└── data/ # 输出数据目录
|
||||
```
|
||||
|
||||
## 安装浏览器
|
||||
|
||||
### 方式1: 自动安装(推荐,但较慢)
|
||||
```bash
|
||||
npx puppeteer browsers install chrome
|
||||
```
|
||||
|
||||
### 方式2: 系统 Chromium
|
||||
```bash
|
||||
# Ubuntu/Debian
|
||||
sudo apt-get install chromium-browser
|
||||
|
||||
# 然后在 config/browser.js 中设置
|
||||
executablePath: '/usr/bin/chromium-browser'
|
||||
```
|
||||
|
||||
### 方式3: 使用已安装的 Chrome
|
||||
在 `config/browser.js` 中修改 `executablePath` 指向你的 Chrome 路径。
|
||||
|
||||
## 使用
|
||||
|
||||
```bash
|
||||
# 获取微博热搜
|
||||
node scripts/get-weibo-hot.js
|
||||
|
||||
# 获取B站热搜
|
||||
node scripts/get-bilibili-trending.js
|
||||
|
||||
# 获取所有平台热点
|
||||
node scripts/get-all-hotspots.js
|
||||
```
|
||||
|
||||
## 快速开始
|
||||
|
||||
### 方式1: 使用全局命令(推荐)
|
||||
```bash
|
||||
# 已在 ~/.local/bin/hotspots 创建快捷命令
|
||||
hotspots weibo # 微博热搜
|
||||
hotspots bilibili # B站热搜
|
||||
hotspots zhihu # 知乎热榜
|
||||
hotspots all # 所有平台
|
||||
hotspots data # 查看历史数据
|
||||
```
|
||||
|
||||
### 方式2: 在项目目录运行
|
||||
```bash
|
||||
cd /home/ubuntu/nanocode/playwright-hotspots
|
||||
|
||||
# 检查浏览器环境
|
||||
node scripts/check-browser.js
|
||||
|
||||
# 运行抓取
|
||||
npm run weibo
|
||||
npm run bilibili
|
||||
npm run zhihu
|
||||
npm run all
|
||||
```
|
||||
|
||||
### 关于系统服务
|
||||
本项目**不配置为系统服务**,按需手动运行更灵活。
|
||||
如需定时抓取,可配置 cron 或使用 `hotspots all` 命令。
|
||||
|
||||
## 支持平台
|
||||
|
||||
| 平台 | 功能 | 状态 | 说明 |
|
||||
|------|------|------|------|
|
||||
| 微博 | 热搜榜 | ✅ 可用 | 网页抓取,无需登录 |
|
||||
| B站 | 热搜榜 | ✅ 可用 | 直接调用 API |
|
||||
| 知乎 | 热榜 | ✅ 可用 | 直接调用 API |
|
||||
| 小红书 | 搜索 | ⚠️ 需登录 | 需要 Cookie/登录态 |
|
||||
|
||||
## 输出格式
|
||||
|
||||
```json
|
||||
{
|
||||
"platform": "weibo",
|
||||
"timestamp": "2026-03-26T17:00:00+08:00",
|
||||
"items": [
|
||||
{"rank": 1, "title": "热点标题", "hot": "123万", "url": "..."}
|
||||
]
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user