web-article-extractor
Web Article Extractor
目标很简单:先拿到干净正文,再按用户需要决定输出成纯文本、结构化 JSON,还是 Markdown + 图片。
前置条件
确保已配置 chrome-devtools MCP 服务器:
claude mcp add chrome-devtools npx -y chrome-devtools-mcp@latest -- \
--disable-blink-features=AutomationControlled \
--disable-web-security \
--disable-features=IsolateOrigins,site-per-process
基本原则
- 默认优先
Readability.js,不要一上来就手写大段选择器。 - 用户要的是“保存为 Markdown”时,不要只返回正文字符串,直接走 Markdown 导出链路。
- 遇到公众号、知乎这类安全限制页面,再读平台专用说明,不要把平台细节堆在主流程里。
- 多链接批量提取时,串行处理,避免风控。
选择哪条提取路径
1. 普通网页正文提取
默认走:
- 脚本:
scripts/readability_extractor.js - 需要细调参数时再读:
适用场景:
- 提取博客、新闻、专栏正文
- 返回标题、作者、正文、图片、阅读时长等结构化信息
2. 导出为 Markdown,并尽量保留图片
直接走:
- 转换脚本:
scripts/markdown_converter.js - 图片落盘脚本:
scripts/save_with_images.js - 使用说明:
适用场景:
- 用户明确说“保存成 markdown”
- 需要把图片下载到本地并重写 Markdown 图片路径
3. Readability 不稳定,改走轻量提取或手工选择器
回退路径:
- 轻量提取脚本:
scripts/extract_article.js - 选择器参考:
适用场景:
- 页面 DOM 很怪,Readability 抽不准
- 需要按平台特征补自定义选择器
标准流程
1. 打开页面并等待正文稳定
- 导航到目标 URL
- 等页面加载完成
- 如果正文节点迟迟不出现,额外等 2-3 秒再提取
2. 先判断输出形态
- 用户只要“看内容”:
- 提取正文并直接返回摘要/结构化内容
- 用户要“保存为 Markdown”:
- 直接走
markdown_converter.js+save_with_images.js
- 直接走
- 用户要“分析页面结构”:
3. 微信公众号特殊处理
只有在目标页面确实是公众号链接时,才启用特殊处理:
- 优先读 references/platform-specific.md
- 必要时模拟微信
User-Agent - 必要时追加等待逻辑,确保
#js_content真正加载完成
不要把公众号逻辑默认套在所有网页上。
输出要求
纯提取结果
至少包含:
titleauthorcontenturlwordCount
Markdown 输出
至少包含:
- 正文
.md - 图片资源目录或本地图片文件
- 图片路径已回写到 Markdown
参考资料导航
- Readability 原理与限制:
- Readability 可调参数:
- 平台专用说明:
- Markdown 保存链路:
- 常见选择器模式:
- 实际调用示例:
- 提取成功率与排错:
脚本清单
scripts/readability_extractor.js- 主提取脚本,默认入口
scripts/readability_loader.js- 负责在运行时加载提取逻辑
scripts/extract_article.js- 轻量回退提取器
scripts/markdown_converter.js- 转成 Markdown 数据结构
scripts/save_with_images.js- 下载图片并落盘
scripts/Readability.js- Readability 运行库,不直接改调用方式
常见问题
- 需要登录的内容:
- 使用已登录浏览器实例,不要假设匿名可读
- 公众号提示“请在微信中打开”:
- 先读 references/platform-specific.md,不要直接硬改全局流程
- 提取失败或内容不完整:
- 先读 references/best-practices.md,再决定是否切换到
extract_article.js
- 先读 references/best-practices.md,再决定是否切换到
More from dongbeixiaohuo/writing-agent
style-modeler
当用户需要学习某种风格、提取写作配方、建立风格库或模仿特定作者时调用。深度解构文本的15个维度,包括作者画像、思维内核、创作路径、互动设计等,建模为可精准复制的风格文件。触发词:风格建模、提取风格、学习风格、模仿写作、解构文章、写作配方、风格库。
41workflow-producer
|
24topic-research
在写作前验证选题是否值得写。当用户说"帮我调研这个选题""这个话题值得写吗""分析一下这个选题"时调用。提供热点扫描、爆款拆解、痛点验证和选题打分,确保不写"自嗨式"文章。
3editor-review
[Workflow Sub-task] 这是一个子任务 Skill,通常由 workflow-producer 调度调用。仅当 workflow-producer 处于【Step 7: 审稿】阶段或协作流程结束时使用。不要直接用于响应用户的通用"写作"请求。
3topic-generator
当用户完全没有写作灵感、不知道写什么时调用。通过热点扫描、个人资产盘点、竞品分析生成候选选题,并进行五问验证和具象化,最终输出可立即动笔的选题执行方案。触发词:不知道写什么、帮我想个选题、有什么值得写的、给我推荐选题。
3writing-executor
INTERNAL UTILITY ONLY. DO NOT INVOKE DIRECTLY. This skill is exclusively called by the 'workflow-producer' agent during the drafting phase. It is NOT for user interaction. If existing materials are ready and the user wants to write, use 'workflow-producer' to manage the process.
3