110 lines
2.7 KiB
Markdown
110 lines
2.7 KiB
Markdown
# 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": "..."}
|
|
]
|
|
}
|
|
```
|