AI分析
This commit is contained in:
@@ -7,6 +7,116 @@
|
||||
|
||||
脚本通过 SSH 别名 `sbnews` 连接服务器,打包本地 `server` 代码并在服务器目录解压安装。Windows 下优先使用 `deploy-server.ps1`,不依赖 WSL。
|
||||
|
||||
## Docker 爬虫定时任务
|
||||
|
||||
Docker 只负责运行 Python 爬虫和容器内 cron。MySQL、Redis、Nginx 继续使用宿主机服务,容器通过运行时环境变量连接宿主机服务。
|
||||
|
||||
配置源:
|
||||
|
||||
- Docker Compose:`docker/docker-compose.crawler.yml`
|
||||
- 环境变量示例:`docker/.env.docker.example`
|
||||
- 任务清单:`server/public/dongqiudi-crawler/config/crawler_tasks.yaml`
|
||||
- 任务日志:管理后台 `系统设置 -> 系统维护 -> 爬虫任务日志`
|
||||
- 错误日志:管理后台 `系统设置 -> 系统维护 -> 爬虫错误日志`
|
||||
|
||||
禁用的定时任务不要放进 Docker 执行清单;如需临时停用某个 Docker 爬虫任务,将 `crawler_tasks.yaml` 对应任务的 `active` 改为 `false`,然后重建或重启 crawler 容器。
|
||||
|
||||
### 当前 Docker 定时任务列表
|
||||
|
||||
| 任务标识 | 任务名称 | 动作 | Cron |
|
||||
| --- | --- | --- | --- |
|
||||
| `video` | 视频列表采集 | `video` | `54 * * * *` |
|
||||
| `lottery_draw` | 彩种开奖数据采集 | `lottery_draw` | `*/2 * * * *` |
|
||||
| `match_finish` | 超时比赛收尾 | `match_finish` | `*/1 * * * *` |
|
||||
| `error_report` | 爬虫错误报告邮件 | `error_report` | `*/1 * * * *` |
|
||||
| `csl_match` | 中超赛程页面采集 | `csl_match` | `0 */1 * * *` |
|
||||
| `nba_match` | NBA赛程页面采集 | `nba_match` | `*/1 * * * *` |
|
||||
| `cba_match` | CBA赛程页面采集 | `cba_match` | `0 */1 * * *` |
|
||||
| `epl_match` | 英超赛程页面采集 | `epl_match` | `0 */1 * * *` |
|
||||
| `bundesliga_match` | 德甲赛程页面采集 | `bundesliga_match` | `0 */1 * * *` |
|
||||
| `laliga_match` | 西甲赛程页面采集 | `laliga_match` | `0 */1 * * *` |
|
||||
| `seriea_match` | 意甲赛程页面采集 | `seriea_match` | `0 */1 * * *` |
|
||||
| `ligue1_match` | 法甲赛程页面采集 | `ligue1_match` | `0 */1 * * *` |
|
||||
| `ucl_match` | 欧冠赛程页面采集 | `ucl_match` | `0 */1 * * *` |
|
||||
| `uel_match` | 欧联赛程页面采集 | `uel_match` | `0 */1 * * *` |
|
||||
| `tennis_match` | 网球赛程页面采集 | `tennis_match` | `0 */1 * * *` |
|
||||
| `esports_match` | 电竞赛程页面采集 | `esports_match` | `0 */1 * * *` |
|
||||
| `sports_match` | 体坛赛程页面采集 | `sports_match` | `0 */1 * * *` |
|
||||
| `truth_social` | Truth Social帖子采集+同步 | `truth_social` | `0 */12 * * *` |
|
||||
| `league_news` | 中超资讯采集 | `league_news` | `*/30 * * * *` |
|
||||
| `article_content` | 文章内容补全 | `article_content` | `*/1 * * * *` |
|
||||
| `live_detail` | 实时比赛详情更新 | `live_detail` | `*/1 * * * *` |
|
||||
| `crypto_news` | 加密货币新闻采集 | `crypto_news` | `0 */1 * * *` |
|
||||
| `article_content_fetch` | 资讯正文抓取 | `article_content_fetch` | `*/1 * * * *` |
|
||||
| `dqd_worldcup` | 懂球帝世界杯采集 | `dqd_worldcup` | `*/10 * * * *` |
|
||||
| `fifa_worldcup_news` | FIFA世界杯资讯 | `fifa_worldcup_news` | `*/10 * * * *` |
|
||||
| `lottery_community` | 49宝典新旧澳六合彩社区采集 | `lottery_community` | `*/10 * * * *` |
|
||||
| `taiwan_lottery_news` | 台湾彩券资讯采集 | `taiwan_lottery_news` | `15 */2 * * *` |
|
||||
| `hkjc_lottery_news` | 香港赛马会资讯采集 | `hkjc_lottery_news` | `45 */2 * * *` |
|
||||
| `cba_news` | CBA资讯采集 | `cba_news` | `20 * * * *` |
|
||||
| `nba_news` | NBA资讯采集 | `nba_news` | `10 * * * *` |
|
||||
|
||||
### Docker 爬虫常用命令
|
||||
|
||||
以下命令默认在测试服执行:
|
||||
|
||||
```bash
|
||||
ssh sbnews
|
||||
cd /www/wwwroot/test-server.sbnews.net/docker
|
||||
```
|
||||
|
||||
查看容器状态:
|
||||
|
||||
```bash
|
||||
sudo docker ps --filter name=sport-era-crawler
|
||||
sudo docker compose -f docker-compose.crawler.yml ps crawler
|
||||
```
|
||||
|
||||
构建并启动 crawler:
|
||||
|
||||
```bash
|
||||
sudo docker compose -f docker-compose.crawler.yml up -d --build crawler
|
||||
```
|
||||
|
||||
重启 crawler:
|
||||
|
||||
```bash
|
||||
sudo docker compose -f docker-compose.crawler.yml restart crawler
|
||||
```
|
||||
|
||||
查看容器日志:
|
||||
|
||||
```bash
|
||||
sudo docker logs --tail 100 sport-era-crawler
|
||||
```
|
||||
|
||||
查看容器内已渲染的 cron:
|
||||
|
||||
```bash
|
||||
sudo docker exec sport-era-crawler sed -n '1,260p' /etc/cron.d/sport-era-crawler
|
||||
```
|
||||
|
||||
手动执行并写入“爬虫任务日志”:
|
||||
|
||||
```bash
|
||||
sudo docker exec sport-era-crawler python scripts/docker_task_runner.py run nba_match --task-key nba_match --task-name 'NBA赛程页面采集' --cron-expression 'manual'
|
||||
sudo docker exec sport-era-crawler python scripts/docker_task_runner.py run live_detail --task-key live_detail --task-name '实时比赛详情更新' --cron-expression 'manual'
|
||||
sudo docker exec sport-era-crawler python scripts/docker_task_runner.py run match_finish --task-key match_finish --task-name '超时比赛收尾' --cron-expression 'manual'
|
||||
sudo docker exec sport-era-crawler python scripts/docker_task_runner.py run article_content_fetch --task-key article_content_fetch --task-name '资讯正文抓取' --cron-expression 'manual'
|
||||
```
|
||||
|
||||
仅调试 Python 动作,不写入“爬虫任务日志”:
|
||||
|
||||
```bash
|
||||
sudo docker exec sport-era-crawler python main.py nba_match
|
||||
```
|
||||
|
||||
检查容器依赖:
|
||||
|
||||
```bash
|
||||
sudo docker exec sport-era-crawler python -c "import scrapling, browserforge; print('crawler runtime ok')"
|
||||
```
|
||||
|
||||
### PowerShell 一次执行命令
|
||||
|
||||
在 Windows PowerShell 中执行:
|
||||
|
||||
Reference in New Issue
Block a user