# github-xhs-weekly **Repository Path**: lianghanwu1999/github-xhs-weekly ## Basic Information - **Project Name**: github-xhs-weekly - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-19 - **Last Updated**: 2026-06-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
GitHub Trending → AI 文案 → 封面生成 → 飞书审核 → 小红书一键发布
日榜 · 周榜 · 月报 | 三种模式自由切换 | 全链路半自动
--- ## 📖 这是什么? 一个 **程序员自媒体自动化工具**。每周帮你自动抓取 GitHub 最火的开源项目,用 AI 生成小红书风格的文案和配图,推送到飞书让你审核确认后,一键发布到小红书。 > 🎯 适合想做技术内容但懒得每周手动整理 GitHub Trending 的开发者。 ### 效果预览 ``` ┌─────────────────────────────────────────────────────┐ │ 📡 爬取榜单 → GitHub Trending 本周 Top 3 │ │ 🤖 AI 生成 → DeepSeek 分步写文案 + 动态标签 │ │ ✋ 飞书审核 → 3 个标题候选,你挑一个 │ │ 🎨 自动配图 → Pillow 模板 / AI 绘图,可切换 │ │ ✋ 飞书确认 → 封面+正文预览,你说"发"才发 │ │ 📤 发布归档 → Playwright 发小红书 + Markdown 归档 │ └─────────────────────────────────────────────────────┘ ``` --- ## ✨ 特性 - 🥷 **隐身反检测**:隐藏 `navigator.webdriver`、贝塞尔鼠标轨迹、人类打字模拟、随机微动作 - 🔄 **三种模式**:日榜速递 / 周榜深度 / 月报回顾,`config.yaml` 一键切换 - 🧠 **AI 分步生成**:事实提取 → 标题候选 → 正文展开 → 标签匹配,杜绝幻觉 - 🛡️ **双审核卡点**:飞书卡片消息远程审核,人在外面也能确认发布 - 🎨 **双模封面**:Pillow 模板(零成本 <1s) + AI 绘图(科技感),配置切换 - 🔌 **发布适配器**:预留多平台接口,加即刻/Twitter 只需写新适配器 - 📦 **结构化归档**:每条发布自动存 Markdown,月底自动生成月报 - ⚙️ **启动自检**:跑之前自动检查 API Key、Cookie、字体等必要项 - 🚨 **异常通知**:任何环节失败 → 飞书/微信告警 --- ## 🚀 小白快速上手(5 分钟) ### 第一步:克隆项目 ```bash git clone https://gitee.com/yourname/github-xhs-weekly.git cd github-xhs-weekly ``` ### 第二步:安装依赖 ```bash # Python 依赖 pip install requests beautifulsoup4 openai pillow playwright pyyaml httpx # Playwright 浏览器(只需装一次) python -m playwright install chromium ``` ### 第三步:填写配置 打开 `config.yaml`,改 3 个地方: ```yaml deepseek: api_key: "sk-xxxxxxxxxxxxxxxx" # ← 改成你的 DeepSeek API Key # 获取地址: https://platform.deepseek.com notify: feishu: webhook_url: "https://open.feishu.cn/open-apis/bot/v2/hook/xxxx" # ← 飞书机器人地址 ``` > 💡 **飞书 Webhook 怎么获取?** > 飞书群 → 右上角 `···` → 设置 → 群机器人 → 添加自定义机器人 → 复制 Webhook 地址 ### 第四步:登录小红书 ```bash python scripts/xhs_publish.py --login ``` 浏览器会自动打开小红书登录页 → 扫码登录 → 回到终端按 Enter → Cookie 自动保存。 ### 第五步:跑起来! ```bash # 试运行(只生成文案和封面,不真发布) python scripts/main.py --mode weekly --dry-run # 正式发布 python scripts/main.py --mode weekly ``` --- ## 🎮 使用指南 ### 三种模式 | 命令 | 模式 | 数据源 | 数量 | 适用场景 | |------|------|--------|------|----------| | `--mode daily` | 日榜速递 | GitHub Trending daily | Top 2 | 高频日更 | | `--mode weekly` | 标准周榜 | GitHub Trending weekly | Top 3 | 每周一篇(推荐) | | `--mode monthly` | 月度回顾 | 当月归档汇总 | Top 5 | 月末总结 | ### 日常使用 ```bash # 只检查配置是否正确 python scripts/check_config.py # 周榜试运行 python scripts/main.py --mode weekly --dry-run # 周榜正式发布 python scripts/main.py --mode weekly # 日榜速递 python scripts/main.py --mode daily # 月报回顾 python scripts/main.py --mode monthly ``` ### 配置校验 每次运行 `main.py` 都会自动校验配置。你也可以单独检查: ```bash python scripts/check_config.py ``` 输出示例: ``` ⚠️ 警告: 通知通道未配置 → 审核卡点将降级为控制台交互 ❌ 配置错误(必须修复): DeepSeek API Key 未配置 → 编辑 config.yaml 中 deepseek.api_key ``` --- ## 📁 目录结构 ``` github-xhs-weekly/ ├── README.md ├── SKILL.md # Codex Skill 说明 ├── config.yaml # 🎛️ 全局配置(改这一个文件就行) ├── .gitignore ├── selectors/ │ └── xhs.yaml # 小红书页面选择器(改版只改这) ├── scripts/ │ ├── main.py # 🎯 总调度(6 步流程 + 飞书卡点) │ ├── check_config.py # ✅ 启动前配置校验 │ ├── github_trend.py # 📡 GitHub Trending 爬虫 │ ├── generate_note.py # 🧠 DeepSeek 分步文案 │ ├── generate_cover.py # 🎨 封面生成(Pillow/AI) │ ├── xhs_publish.py # 📤 小红书 Playwright 发布 │ ├── publisher.py # 🔌 发布适配器基类 │ ├── notify.py # 💬 飞书/微信双通道通知 │ ├── stealth.py # 🥷 隐身反检测 │ └── archiver.py # 📦 归档 + 月报生成 ├── assets/ │ ├── covers/ # 封面模板底图 │ └── fonts/ # 字体文件(放入 PingFang 效果更佳) ├── data/ │ ├── posts/ # 📝 归档 Markdown(按年/月) │ ├── summaries/ # 📊 自动月报 │ ├── covers/ # 🖼 生成的封面图 │ └── screenshots/ # 📸 发布前截图 └── references/ └── troubleshooting.md # 🔧 故障排查 ``` --- ## ⚙️ 完整配置说明 ```yaml # ── DeepSeek API ── deepseek: api_key: "sk-xxx" # DeepSeek API Key(必填) base_url: "https://api.deepseek.com" model: "deepseek-chat" # ── 频率模式 ── frequency: mode: weekly # daily | weekly | monthly # ── 封面 ── cover: mode: pillow # pillow(免费)| ai_image(科技感) # ── 通知 ── notify: primary: feishu # feishu | wechat # ── 发布平台 ── publishers: - xhs # 当前只启用了小红书 # ── 发布设置 ── publish: dry_run: false # true=试运行不发布 screenshot_before_publish: true random_delay_min: 2 # 模拟真人操作延时(秒) random_delay_max: 5 ``` --- ## 🔧 常见问题 | 问题 | 解决 | |------|------| | Cookie 过期 | `python scripts/xhs_publish.py --login` | | 小红书改版发布失败 | 更新 `selectors/xhs.yaml` 中的 CSS 选择器 | | DeepSeek API 报错 | 检查 Key 是否正确、账户余额 | | 封面字体异常 | `cp /System/Library/Fonts/PingFang.ttc assets/fonts/` | | GitHub 抓取失败 | 等待几分钟重试,GitHub 偶尔限流 | 更多详见 [references/troubleshooting.md](references/troubleshooting.md) --- ## 🥷 隐身反检测 小红书对自动化操作有严格的风控系统,本工具内置以下对抗措施: | 层级 | 措施 | 说明 | |------|------|------| | 浏览器指纹 | 隐藏 `navigator.webdriver` | 移除 Playwright 最明显的自动化标记 | | 浏览器指纹 | 伪造 Chrome 运行时 | `window.chrome.runtime` 等对象 | | 浏览器指纹 | 固定 UA + 语言 + 时区 | 伪装成真实 Mac Chrome 中文用户 | | 浏览器指纹 | 硬件指纹伪装 | 伪造 `hardwareConcurrency=8`, `deviceMemory=8` | | 行为模拟 | 贝塞尔曲线鼠标移动 | 鼠标从随机起点沿曲线移动到目标,不是瞬移 | | 行为模拟 | 逐字打字 | 每个字符间隔 30~120ms,偶有"思考停顿" | | 行为模拟 | 随机微动作 | 滚动、停留、回滚,模拟浏览行为 | | 浏览路径 | 真实浏览路径 | 先访问首页 → 再进发布页,不是直跳 | | 启动参数 | 反自动化标记 | `--disable-blink-features=AutomationControlled` | > ⚠️ 隐身措施能显著降低被检测概率,但**不保证 100% 安全**。小红书风控系统持续升级,行为模式分析是他们的核心能力。 ## 🛡️ 安全须知 1. **每周只发 1 篇**(周榜模式),日榜仅用于草稿测试 2. 发布间隔已内置随机延时(2~5 秒),模拟真人操作 3. 切勿用于批量发布、点赞、评论引流 4. Cookie 文件 (`data/xhs_cookie.json`) 已加入 `.gitignore`,不会提交到仓库 5. 小红书无公开个人发帖 API,本工具基于浏览器模拟,**使用风险自负** --- ## 🗺️ 路线图 - [x] GitHub Trending 爬虫(daily/weekly) - [x] DeepSeek 分步 AI 文案生成 - [x] Pillow + AI 双模封面 - [x] 小红书 Playwright 自动发布 - [x] 飞书/微信远程审核卡点 - [x] 结构化 Markdown 归档 + 月报 - [x] 启动前配置自检 - [ ] 即刻 / Twitter 发布适配器 - [ ] 飞书回调交互(替代 CLI 输入) - [ ] Web 管理面板 --- ## 📄 License MIT © 2025