crawler.sh 是一个用于在 Ubuntu 系统上一键启动 MediaCrawlerPro 全部服务的自动化脚本,支持自动管理 3 个项目的启动、停止、日志输出。
| 功能 | 说明 |
|---|---|
| 一键启动 | 自动启动 SignSrv、CookieBridge、爬虫循环 |
| 一键停止 | 自动停止所有相关进程 |
| 状态查看 | 查看各服务运行状态 |
| 日志查看 | 查看实时日志 |
| 断点续爬 | 自动继承项目的断点续爬功能 |
/path/to/MediaCrawlerPro/
├── crawler.sh # 主入口脚本(运行这个)
├── crawler_loop.sh # 自动生成的爬虫循环脚本
├── pid.txt # 进程ID文件(合并为1个)
├── logs/ # 日志目录(自动创建)
│ ├── signsrv.log # 签名服务日志
│ ├── cookiebridge.log # Cookie服务日志
│ ├── crawler循环.log # 主循环日志
│ ├── xhs_YYYYMMDD.log # 小红书爬取日志
│ ├── dy_YYYYMMDD.log # 抖音爬取日志
│ └── bili_YYYYMMDD.log # B站爬取日志
./crawler.sh start启动流程:
1. 检查 uv 是否已安装(如未安装,自动安装)
2. 检查 3 个项目目录是否存在
3. 停止已有进程(防止重复启动)
4. 清空各平台日志文件
5. 启动 SignSrv(签名服务)
6. 启动 CookieBridge(Cookie同步服务)
7. 启动爬虫循环(xhs → dy → bili → 等待 → 循环)
./crawler.sh stop会停止:
- pid.txt 中记录的所有进程
- 所有相关的 uv run app.py 进程
./crawler.sh status输出示例:
==========================================
MediaCrawlerPro 服务状态
==========================================
● SignSrv (PID: 12345)
● CookieBridge (PID: 12346)
● Crawler循环 (PID: 12347)
==========================================
状态: 全部运行中
==========================================
./crawler.sh logs./crawler.sh tail./crawler.sh restart打开 crawler.sh,找到 核心配置 区域,可以修改以下参数:
# ---------- 核心配置(可自定义)----------
KEYWORDS="deepseek,chatgpt" # 爬取关键词
MAX_COUNT=10 # 爬取数量,默认10条
ENABLE_COMMENTS=false # 是否爬取评论,false=不爬,true=爬
MAX_COMMENTS_PER_NOTE=50 # 每个帖子最大评论数,0=不限制
DY_PUBLISH_TIME=1 # 抖音时间筛选:0=不限,1=一天内,7=一周内
INTERVAL=7200 # 循环间隔(秒),2小时=7200
PLATFORMS=("xhs" "dy" "bili") # 爬取平台顺序
CRAWLER_TYPE="search" # 爬取类型| 参数 | 默认值 | 说明 |
|---|---|---|
| KEYWORDS | deepseek,chatgpt | 爬取关键词,用逗号分隔 |
| MAX_COUNT | 10 | 爬取数量 |
| ENABLE_COMMENTS | false | 是否爬取评论,true=爬(较慢) |
| MAX_COMMENTS_PER_NOTE | 50 | 每个帖子最大评论数,0=不限制 |
| DY_PUBLISH_TIME | 1 | 抖音时间筛选:0=不限,1=一天内,7=一周内,180=半年内 |
| INTERVAL | 7200 | 整体循环间隔(秒),默认2小时 |
| PLATFORMS | xhs,dy,bili | 爬取平台顺序 |
| CRAWLER_TYPE | search | 爬取类型 |
# 1. 编辑 crawler.sh
vim crawler.sh
# 2. 找到 KEYWORDS 行,修改为你要的关键词
KEYWORDS="AI,科技,热点"
# 3. 保存并重启
./crawler.sh restart┌────────────────────────────────────────┐
│ 主循环开始
└─────────────────── ────────────────────┘
│
▼
┌───────────────┐
爬取 xhs
(小红书)
└───────────────┘
│
▼ 失败跳过,成功继续
┌───────────────┐
等待 10s
└───────────────┘
│
▼
┌───────────────┐
爬取 dy
(抖音)
└───────────────┘
│
▼
┌───────────────┐
等待 10s
└───────────────┘
│
▼
┌───────────────┐
爬取 bili
(B站)
└───────────────┘
│
▼
┌───────────────┐
等待 INTERVAL
(默认2小时)
└───────────────┘
│
▼
┌───────────────┐
循环开始
└───────────────┘
- 某个平台失败 → 跳过继续爬取下一个平台
- 其他平台不受影响 → 独立的错误处理
- 单日日志 → 每天生成新的日志文件
| 服务 | 端口 | 用途 |
|---|---|---|
| SignSrv | 8090 | 请求签名验证 |
| CookieBridge | 8274 | Cookie 自动同步 |
| Crawler | - | 无端口,通过上述服务获取 Cookie |
- 系统: Ubuntu 16.04+
- 依赖: uv(脚本自动安装)
- 网络: 能访问外网(用于安装 uv)
脚本会自动检测:
- uv 是否已安装
- 3 个项目目录是否存在
- PID 文件对应的进程是否存活
将整个 MediaCrawlerPro/ 目录复制到新电脑即可,无需修改任何配置。
解决:脚本会自动安装,如手动安装:
curl -LsSf https://astral.sh/uv/install.sh | sh确认目录结构:
MediaCrawlerPro/
├── MediaCrawlerPro-SignSrv/
├── MediaCrawlerPro-CookieBridge/
├── MediaCrawlerPro-Python/
└── crawler.sh
原因:CookieBridge 中没有登录的账号
解决:
- 在浏览器安装 CookieBridge Extension
- 登录对应平台账号
- 重启爬虫:
./crawler.sh restart
# 查看主循环日志
./crawler.sh logs
# 实时查看
./crawler.sh tail
# 查看特定平台日志
cat logs/xhs_20260409.logB 站默认使用 search(关键词搜索)。
如需修改爬取类型,编辑 crawler.sh:
# 找到这行,修改为 detail 或其他
CRAWLER_TYPE="search"支持的类型(参考各平台):
search- 关键词搜索detail- 帖子详情creator- 创作者主页
cd MediaCrawlerPro-SignSrv
uv run app.pycd MediaCrawlerPro-CookieBridge/server
uv run app.pycd MediaCrawlerPro-Python
# 手动运行
uv run main.py --platform xhs --type search当前日志级别为 INFO,如需更详细日志,可修改各项目的日志配置。
- 首次运行前配置账号 - 确保 CookieBridge 有对应平台的登录账号
- 合理设置间隔 - 避免被平台封 IP
- 定期检查日志 - 查看是否有错误
- 磁盘空间 - 日志会不断累积,建议定期清理