> 👑 增强版 — 基于 csdn-publisher v2.3 升级,新增图片自动处理和文章编辑功能。
python scripts/csdn_publish.py article.md --title "文章标题"
效果: 首次扫码登录,之后直接复用登录态,无需再次扫码。
> 所有图片自动上传到 CSDN 图床,不引用外部 URL。
| 参数 | 作用 |
|---|---|
| ------ | ------ |
| 默认 | 自动下载网络图片 → 上传 CSDN 图床 → 替换 URL |
--no-images | 跳过图片处理 |
--only-images | 仅上传图片,不发布文章 |
支持: 网络图片 URL(自动下载)、本地文件路径、已有 CSDN 图床 URL(跳过)
python scripts/csdn_publish.py article.md --title "标题" --article-id 160913376
| 要点 | 说明 |
|---|---|
| ------ | ------ |
| storage_state | 保存 localStorage(含阿里云网关令牌),比纯 Cookie 更完整 |
| quality-score 拦截 | 发布前拦截 API 返回 200,否则弹窗弹不出 |
发布弹窗是 .modal | 真正的弹窗是 |
| 图片上传 | 点击「图片」按钮 → .uploadPicture input[type="file"] → 自动上传到 i-blog.csdnimg.cn |
| 文件 | 说明 |
|---|---|
| ------ | ------ |
scripts/csdn_publish.py | 🏆 核心脚本 — 登录 + 图片处理 + 发布 |
scripts/csdn_wechat_login.py | 微信扫码登录(单独使用) |
pip install playwright
playwright install chromium
| 问题 | 解决 |
|---|---|
| ------ | ------ |
storage_state 过期 | 删掉 ~/.hermes/credentials/csdn-storage-state.json,重跑 |
| modal 弹不出 | quality-score 拦截没生效 |
| 发布按钮点不了 | 用 JS element.click() 而非 Playwright click() |
| 图片上传失败 | Modal 未弹出时自动重试一次 |
| 规则 | 说明 |
|---|---|
| ------ | ------ |
| H1 标题 | 用 --title 填入标题栏 |
| 正文层级 | 从 # 开始 |
| 小标题 | 加粗 |
| 列举 | 优先用无序/有序列表 |
| 段落 | 2-4 句,口语化 |
共 1 个版本