Skip to content

内容源名录与 ali runner.py ​

内容源(本仓库自维护) ​

路径说明
content-sources/opml/*.opml人工维护的订阅源 OPML
docs/public/data/content-sources-catalog.json站点用名录(脚本生成)
scripts/sync-content-sources.pyOPML → JSON
bash
python3 scripts/sync-content-sources.py

CI: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
Cron20 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
知乎 RSSRender(config.yaml → rss_templates.zhihu);不在 ali 跑 Docker
日志rss_collector.log(轮转)
数据库config.yaml → database(表 rss_feed_data)

常见故障(2026-11-12 复盘)

  1. collect.py 常驻卡死:进程能跑 200+ 天,日志停在某一进度后不再写入 → pkill -f collect.py,只用 cron + --now(勿再无参数常驻)。
  2. Render 冷启动:免费实例休眠后首请求可能超时;cron 跑采集前先 curl -sS --max-time 90 https://rsshub-xwwd.onrender.com/ 唤醒。
  3. 知乎 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 表示有效
出站 IPRender 机房 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 条目。