.
├── pipeline.py ← 一键流水线(本项目核心,整合所有步骤)
├── 1clean.py ← 步骤1独立脚本:提取链接
├── 2export_links.py ← 步骤2独立脚本:抓取文章
├── 3_1extract_and_delete.py ← 步骤3a独立脚本:清理失效文章
├── 3_2open_links.py ← 步骤3b独立脚本:浏览器打开链接
└── README.md
pip install requests beautifulsoup4 markdownifypython pipeline.py 你的链接文件.md# 只提取链接 + 导出文章(不打开浏览器)
python pipeline.py 链接.md --step 1,2
# 从已有 links.txt 开始导出
python pipeline.py 链接.md --links-file 链接.links.txt --step 2,3a
# 不自动打开浏览器
python pipeline.py 链接.md --no-browser输入文件(.md / .txt)
│
▼
步骤 1:clean
提取所有格式的 URL → *.links.txt
│
▼
步骤 2:export
逐条抓取文章正文 → exported_articles/*.md
├─ 成功 → 文章.md(含截断警告)
├─ failed_*.md ← 失败清单(HTTP 错误等)
└─ truncated_articles.md ← 微信鉴权截断清单
│
▼
步骤 3a:extract_and_delete
扫描所有 .md,检测失效词 → 删除 + 汇总
└─ deleted_articles_summary.md
│
▼
步骤 3b:open_links(人工介入)
剩余文章链接 → 浏览器逐一打开
| 文件 | 说明 |
|---|---|
exported_articles/*.md |
成功导出的文章 |
failed_YYYYMMDD.md |
HTTP 错误等失败链接清单 |
truncated_articles.md |
微信鉴权截断的文章清单 |
deleted_articles_summary.md |
已删除的失效/违规文章链接汇总 |
微信公众号文章(mp.weixin.qq.com)可能遇到以下情况:
| 情况 | 原因 | 处理方式 |
|---|---|---|
| 内容截断( |
微信需登录鉴权 | 见 truncated_articles.md,在微信内手动打开 |
| 已删除 / 违规 | 作者删除或平台屏蔽 | 步骤3a自动删除,见 deleted_articles_summary.md |
| HTTP 403 / 502 | 被反爬或服务器错误 | 见 failed_*.md,可稍后重试 |
根本解决方案(针对截断问题):在微信电脑版/网页版已打开文章后, 使用浏览器扩展(如 MarkDownload) 手动保存完整正文。
python pipeline.py <输入文件> [选项]
参数:
--output-dir DIR 导出目录(默认: ./exported_articles)
--delay FLOAT 抓取间隔秒数(默认: 1.5,太快易被封)
--timeout INT 请求超时秒数(默认: 20)
--step STEPS 运行指定步骤,逗号分隔(默认: 1,2,3a,3b)
--links-file FILE 跳过步骤1,直接指定已清洗的链接文件
--no-browser 跳过步骤3b,不自动打开浏览器
本工作流严格遵循「闭环处理」原则:
- 所有失败都有记录:
failed_*.md - 内容截断有标注:文章内嵌
⚠️ 警告 +truncated_articles.md - 失效文章有备案:删除前提取链接到
deleted_articles_summary.md - 人工处理有入口:步骤3b 批量打开浏览器
追求 80% 自动化,同时显性化剩余 20% 的复杂例外,而不是将其掩盖。