SuperAPI AI 工具集

article-extractor

写作与研究

查看项目

更新于 10-15 20:21

技能介绍

用途

Article Extractor 用于从网页文章、博客文章和教程中提取主要内容,去除导航菜单、广告、订阅表单、相关文章侧栏、评论区和社交媒体按钮等干扰元素,将干净、可读的文本保存为文件。

主要能力

  • 从 URL 提取文章正文,去除页面杂乱内容
  • 支持三种提取工具,按优先级自动选择:reader(基于 Mozilla Readability)、trafilatura(Python)、curl 回退方案
  • 自动获取文章标题并用作文件名
  • 清理文件名中的特殊字符,确保文件系统兼容
  • 保存后显示文件位置和内容预览

使用方式

前置条件

至少满足以下之一:

  • Node.js 18+ 和 npm — 用于 reader(npm install -g reader-cli)
  • Python 3 和 pip — 用于 trafilatura(pip3 install trafilatura)

若两者均未安装,技能会回退到基于 curl 的基础提取(无需安装)。

触发场景

当用户出现以下情况时激活:

  • 提供文章/博客 URL 并希望获取文本内容
  • 要求“下载这篇文章”
  • 要求“从 [URL] 提取内容”
  • 要求“将这篇博客文章保存为文本”
  • 需要无干扰的干净文章文本

工作流程

  1. 按顺序检查已安装的工具(reader 或 trafilatura)
  2. 使用最佳可用工具下载并提取文章
  3. 清理内容(去除多余空白,正确格式化)
  4. 以文章标题作为文件名保存到文件
  5. 确认位置并显示预览

提取方法

方法一:reader(推荐,基于 Mozilla Readability)

reader "URL" > article.txt

优点:基于 Mozilla Readability 算法,擅长去除杂乱内容,保留文章结构。

方法二:trafilatura(基于 Python,适合博客/新闻)

trafilatura --URL "URL" --output-format txt > article.txt

可选参数:--no-comments(跳过评论区)、--no-tables(跳过数据表格)、--precision(偏向精确率)、--recall(提取更多内容,可能包含噪声)。

优点:提取准确,适应多种网站结构,支持多语言。

方法三:回退方案(curl + 基础解析)

使用 curl 下载页面,通过 Python 的 HTMLParser 进行基础文本提取。可靠性较低,但无需依赖。

获取文章标题

  • reader:输出 Markdown,标题在首行(# 标题)
  • trafilatura:通过 --json 获取元数据中的 title 字段
  • curl 回退:从 <title> 标签提取并去除站点名

文件名处理

清理标题中的特殊字符(/、:、?、"、<、>、|),替换为 - 或移除,限制长度(建议 100 字符以内),添加 .txt 扩展名。

适用场景

  • 用户提供文章 URL 并希望获取纯文本内容
  • 需要保存博客文章为文本文件
  • 需要无干扰的干净文章文本用于后续处理
  • 学术文章、新闻网站、复杂布局博客、非英文内容的提取

限制

  • 付费墙或需要登录的文章可能提取失败
  • 重度依赖 JavaScript 的网站可能无法提取
  • 回退方法可能包含噪声,段落检测准确性较低
  • 需要至少安装 reader 或 trafilatura 之一以获得最佳效果
  • 提取质量因网站结构而异,建议始终向用户显示预览并确认

输出格式

保存的文件包含:文章标题(如可用)、作者(如工具提供)、正文文本、章节标题。不包含导航、广告或杂乱内容。

错误处理

  • 工具未安装:尝试替代工具,或提示安装命令
  • 付费墙/需登录:告知用户无法提取
  • 无效 URL:检查格式,尝试处理重定向
  • 无内容提取:尝试回退方法,告知用户
  • 标题含特殊字符:清理文件名