内容源名录与 ali runner.py
内容源(本仓库自维护)
| 路径 | 说明 |
|---|---|
content-sources/opml/*.opml | 人工维护的订阅源 OPML |
docs/public/data/content-sources-catalog.json | 站点用名录(脚本生成) |
scripts/sync-content-sources.py | OPML → JSON |
bash
python3 scripts/sync-content-sources.pyCI:Sync content sources catalog — 当 content-sources/ 或脚本变更时重生成并提交 JSON。
外源列表数据来自 api.llamafactory.cn/rss 与 GitHub Search;名录用于扩充「来源」下拉(标注 · 名录)与底部源目录。· 已接入 表示 /rss/sources 有数据。
对比脚本(本地或 ali):
bash
python3 scripts/compare-rss-ingest-catalog.py批量把 509 条 OPML 入库属于 techblog-collection 爬取配置扩展,与前端名录是两套范围(知乎恢复后再扩源)。
runner.py(AI 中文文档,独立任务)
见 scripts/ai-projects/README.md;与内容源名录无关。
ali(ssh ali → 123.57.222.9)生产验收
| 检查项 | 状态(2026-11-12) |
|---|---|
| 稀疏检出 | /root/.config/llamafactory-ai-docs/checkout |
| Cron | 20 3 * * * → runner.py,runner.log |
| 最近一轮 | state/last-run.json:status: ok,reconcile_errors: [] |
| 密钥 | openrouter.key / siliconflow.key(600) |
101.37.180.14 仅静态站,无 runner。
RSS / 采集(知乎暂缓)
- 列表 API:
https://api.llamafactory.cn/rss(当前仅 7 个已接入源名;与名录 509 条不同步)。 - 名录 JSON 只供前端下拉;实际入库在
ssh ali(123.57.222.9) 的/root/workspace/techblog-collection。
生产路径(知乎等)
| 项 | 路径 |
|---|---|
| 采集脚本 | src/techblog_collection/collect.py(--now 跑一次;无参数则为常驻 + schedule 每 2 天) |
| 配置 | /root/workspace/techblog-collection/config.yaml |
| 知乎 RSS | Render(config.yaml → rss_templates.zhihu);不在 ali 跑 Docker |
| 日志 | rss_collector.log(轮转) |
| 数据库 | config.yaml → database(表 rss_feed_data) |
常见故障(2026-11-12 复盘)
collect.py常驻卡死:进程能跑 200+ 天,日志停在某一进度后不再写入 →pkill -f collect.py,只用 cron +--now(勿再无参数常驻)。- Render 冷启动:免费实例休眠后首请求可能超时;cron 跑采集前先
curl -sS --max-time 90 https://rsshub-xwwd.onrender.com/唤醒。 - 知乎 403/503(反爬):见下文「Render RSSHub + 知乎」;ali 不部署 RSSHub Docker。
Render RSSHub + 知乎(社区结论摘要)
参考:Issue #20402、#19400、PR #22319、配置文档。
| 项 | 建议 |
|---|---|
| 环境变量名 | ZHIHU_COOKIES(勿用已废弃的 ZHIHU_COOKIE) |
| Cookie 内容 | 同一登录会话:d_c0=...; z_c0=...;建议不要写死 __zse_ck,让新版 RSSHub 用 JSDOM 自动刷新 |
| 可选 | 与浏览器一致的 USER_AGENT(#20402 评论) |
| 自检 | 部署 较新 RSSHub 后访问 /zhihu/check-cookie,code: 0 表示有效 |
| 出站 IP | Render 机房 IP 易被知乎 403;家宽/NAS 自建常可用。可试 PROXY_URI + PROXY_URL_REGEX 走住宅/ISP 代理(官方代理说明) |
| 镜像版本 | 需包含 PR #22319(/zhihu/posts 走 api/v4/members);过旧实例即使 Cookie 正确也会失败 |
当前线上错误示例:GET https://www.zhihu.com/api/v4/members/<uid> 403 → 优先 换新 Cookie + 升 RSSHub,仍 403 则基本是 IP/代理 问题而非 collect.py。
推荐 cron(与脚本「每 2 天」一致,且每次退出):
cron
10 4 */2 * * cd /root/workspace/techblog-collection && /root/miniconda3/bin/python src/techblog_collection/collect.py --now >> /root/workspace/techblog-collection/cron-collect.log 2>&1与静态站机区分
101.37.180.14 仅托管 www.llamafactory.cn 静态与部分 Node;知乎采集不在该机。runner.py 的 cron 在 123.57.222.9(ali) 已见 llamafactory-ai-docs 条目。
