SuperAPI AI 工具集

article-extractor

写作与研究

查看项目

更新于 10-16 04:13

技能介绍

用途

Article Extractor 用于从 URL 中提取网页文章的正文内容(如博客文章、文章、教程),并保存为可读的文本文件。当用户提供文章/博客链接并希望获取其文本、要求“下载这篇文章”“从某 URL 提取内容”“把这篇博客保存为文本”,或需要去除干扰的干净文章文本时,可以启用该技能。

主要能力

该技能可从网页文章中提取主要内容,去除导航、广告、newsletter 注册提示等杂乱内容,保存为干净、可读的文本。提取后输出的文件通常包含文章标题(如有)、作者(如工具提供)、正文、章节标题,不包含导航、广告或杂乱内容。被移除的内容包括:导航菜单、广告与推广内容、newsletter 注册表单、相关文章侧栏、评论区(可选)、社交媒体按钮、Cookie 提示。

使用方式与工具优先级

技能按以下优先级检查并使用工具:

  1. reader(推荐,基于 Mozilla Readability):用 command -v reader 检查,未安装则 npm install -g @mozilla/readability-cli 或 npm install -g reader-cli。提取命令:reader "URL" > article.txt。优点是擅长去除杂乱内容、保留文章结构。
  2. trafilatura(基于 Python):用 command -v trafilatura 检查,未安装则 pip3 install trafilatura。提取命令:trafilatura --URL "URL" --output-format txt > article.txt,可选参数 --no-comments、--no-tables、--precision、--recall。优点是提取准确、适应多种站点结构、支持多语言。
  3. 回退方案(curl + 简单解析):在前两者不可用时使用 curl 下载并用 Python 的 HTMLParser 做基础提取,可靠性较低但无需依赖。

标题获取:使用 reader 时取输出 markdown 第一行(head -n 1 | sed 's/^# //');使用 trafilatura 时通过 --json 元数据解析 title;回退方案用 curl 抓取 <title> 标签。文件名会做清理(移除 / : ? " < > | 等字符、限制长度)并以 .txt 结尾。

完整工作流会检查工具、提取内容、清理文件名、移动到最终文件名,并输出确认信息和前 10 行预览。

适用场景

  • 用户提供文章或博客 URL,想要其文本内容
  • 用户要求下载文章、提取某 URL 的内容、把博客保存为文本
  • 需要无干扰的干净文章文本(如新闻站点、博客等)

最佳实践建议:提取后始终向用户展示预览(前 10 行);保存前确认提取成功;清理文件名以兼容文件系统;主方法失败时尝试回退方案;告知用户使用了哪个工具;文件名长度保持合理(少于 100 字符)。

工具的适用差异:reader 适合大多数文章(基于 Firefox 阅读模式,适用于多数新闻站点和博客);trafilatura 适合学术文章、新闻站点、布局复杂的博客以及非英文内容;回退方案可能包含噪声、段落识别准确性较低,但对简单站点仍可使用。

限制与错误处理

  • 工具未安装时,尝试替换工具(reader → trafilatura → 回退),并可提示安装命令。
  • 付费墙或需要登录时,提取工具可能失败,应向用户说明“该文章需要认证,无法提取”。
  • URL 无效时,检查 URL 格式,尝试带与不带重定向的方式。
  • 未提取到内容时,站点可能使用大量 JavaScript,可尝试回退方法;若提取失败需告知用户。
  • 标题含特殊字符时,需为文件系统清理(移除 / : ? " < > |,替换为 - 或删除)。

价格、平台、效果等更多信息暂未提供。