使用 Readabilityjs 清理 HTML 内容以进行检索增强生成

网页抓取是增强型生成式检索 (rag) 应用程序获取内容的一种有效途径,但解析网页内容却可能充满挑战。mozilla 的开源库 readability.js 提供了一种便捷的解决方案,用于提取网页的核心信息。本文将探讨如何将其集成到 rag 应用程序的数据获取流程中。

从网页中检索非结构化数据

网页是 RAG 应用程序宝贵的非结构化数据来源。然而,网页通常包含大量无关信息,例如页眉、侧边栏和页脚等。这些内容虽然对用户浏览网站有帮助,但却偏离了页面的主要主题。

为了优化 RAG 数据质量,我们需要滤除这些无关内容。针对特定网站,可以使用 Cheerio 等工具,根据网站结构自行解析 HTML。但如果需要跨不同布局和设计的网站抓取数据,则需要一种更通用的方法,只提取核心内容,忽略其余部分。

重新定义阅读器视图的功能

大多数浏览器都内置了阅读器视图,该视图会移除除文章标题和正文以外的所有内容。下图展示了 DataStax 网站一篇博文在浏览器模式和阅读器模式下的差异:

使用 Readabilityjs 清理 HTML 内容以进行检索增强生成

立即学习“前端免费学习笔记(深入)”;

Mozilla 将 Firefox 阅读器模式的核心库以独立开源模块 readability.js 的形式提供。因此,我们可以在数据管道中使用 readability.js 来清除无关内容,从而获得更高质量的抓取结果。

使用 Node.js 和 readability.js 抓取数据

以下示例演示了如何从一篇关于在 Node.js 中创建矢量嵌入的博文中提取文章内容:

首先,使用以下 JavaScript 代码检索页面的 HTML:

const html = await fetch(  "https://www.datastax.com/blog/how-to-create-vector-embeddings-in-node-js").then((res) => res.text());console.log(html);

这包含了所有 HTML 标签,以及导航、页脚、分享链接、号召性用语等等。

为了改进这一点,您可以安装 Cheerio 模块,并只选择关键部分:

npm install cheerio
import * as cheerio from "cheerio";const html = await fetch(  "https://www.datastax.com/blog/how-to-create-vector-embeddings-in-node-js").then((res) => res.text());const $ = cheerio.load(html);console.log($("h1").text(), "n");console.log($("section#blog-content > div:first-child").text());

这段代码可以获取文章标题和正文。但是,这需要您了解 HTML 结构,而这并非总是可行的。

更好的方法是安装 readability.js 和 jsdom:

npm install @mozilla/readability jsdom

readability.js 通常在浏览器环境中运行,并使用实时文档而非 HTML 字符串,因此我们需要 jsdom 在 Node.js 中模拟浏览器环境。现在,我们可以将已加载到文档中的 HTML 传递给 readability.js 进行解析:

import { readability } from "@mozilla/readability";import { jsdom } from "jsdom";const url = "https://www.datastax.com/blog/how-to-create-vector-embeddings-in-node-js";const html = await fetch(url).then((res) => res.text());const doc = new jsdom(html, { url });const reader = new readability(doc.window.document);const article = reader.parse();console.log(article);

解析后的结果包含标题、作者、摘要、发布时间以及正文内容 (content 和textContent)。textContent 属性是纯文本内容,可以用于分块、创建矢量嵌入并存储到数据库中。content 属性包含原始 HTML,包括链接和图像,方便进一步处理。

使用 Readabilityjs 清理 HTML 内容以进行检索增强生成

为了确保页面适合使用 readability.js 处理,可以使用 isProbablyReadable 函数进行预先检查:

const doc = new jsdom(html, { url });const reader = new readability(doc.window.document);if (isProbablyReadable(doc.window.document)) {  const article = reader.parse();  console.log(article);} else {  // 执行其他操作}

如果页面未通过检查,则需要采取其他策略处理该页面,或者将其排除。

将 readability 与 Langchain.js 结合使用

如果您的应用程序使用 Langchain.js,则可以结合使用 readability.js 和 Langchain.js 的 MozillaReadabilityTransformer 来处理网页内容。这可以与 Langchain 的其他组件(例如文本分块器和向量数据库)无缝集成。

使用 readability.js 获取更准确的网络抓取数据

readability.js 是一个可靠的库,可以有效地清理网页内容,使其更适合 RAG 应用。您可以直接使用该库,或者结合 Langchain.js 使用 MozillaReadabilityTransformer 来实现。 网页数据获取只是数据处理流程的第一步,后续还需要文本分块、向量嵌入生成以及数据存储等步骤。

您是否使用其他技术来清理 RAG 应用程序的网页内容?欢迎分享您的经验!

以上就是使用 Readabilityjs 清理 HTML 内容以进行检索增强生成的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1500934.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
日期数据类型、变量、运算符、条件语句、Javascript 中的循环
上一篇 2025年12月19日 22:57:16
var、let、const 的范围
下一篇 2025年12月19日 22:57:30

相关推荐

  • 《空洞骑士:丝之歌》页面再次更新 暗示将进入发售阶段

    《空洞骑士:丝之歌》的 Steam 页面再次迎来了更新。该作于 2025 年 6 月 3 日凌晨 3 点 44 分新增了一个文件库,添加了“商店或 CD Key”的结算类型,主页部分也进行了更新,这或许暗示游戏已进入发售准备的阶段。 “其实我蛮幸运的,刚入空洞一,快玩完了空洞二就要出了”,这是国内空…

    2026年9月6日
    000
  • AO3中文网页入口2025 AO3免登录直连稳定链接

    为了帮助您在2025年快速找到ao3的中文网页入口,并提供一个无需登录即可直接访问的稳定链接,本指南将为您提供最简单、最有效的方法。告别繁琐的步骤,享受顺畅的免登录阅读体验。 ao3浏览器直接打开☜☜☜☜☜点击进入 ao3网页进入版链接2025☜☜☜☜☜点击进入 获取并使用唯一的稳定直连链接 1、确…

    2026年9月6日
    000
  • 智能外呼系统怎么搭建_TwilioAI外呼机器人配置指南

    答案是利用Twilio搭建智能外呼系统需注册账号获取API密钥、购买电话号码、配置Twilio函数与TwiML应用、编写外呼逻辑并可集成AI能力,最后测试优化及持续监控。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 智能外呼系统搭建的核心…

    2026年9月6日
    100
  • 使用Holer服务端软件搭建属于自己的内网穿透

    使用Holer服务端软件搭建属于自己的内网穿透使用Holer服务端软件搭建属于自己的内网穿透使用Holer服务端软件搭建属于自己的内网穿透使用Holer服务端软件搭建属于自己的内网穿透

    用户可以下载 holer-server.zip 来搭建自己的holer服务端。 搭建Holer服务端的准备工作 (1) 准备一台运行Linux或Windows系统的主机; (2) 安装Java 1.8或更高版本,并通过运行命令 java -version 确认Java是否可用; (3) 安装并启动N…

    2026年9月6日 用户投稿
    200
  • 《忍者龙剑传外传:怒之羁绊》宣布7月31日正式发售

    《忍者龙剑传外传:怒之羁绊》宣布7月31日正式发售《忍者龙剑传外传:怒之羁绊》宣布7月31日正式发售《忍者龙剑传外传:怒之羁绊》宣布7月31日正式发售《忍者龙剑传外传:怒之羁绊》宣布7月31日正式发售

    在 6 月 5 日凌晨举行的索尼 State of Play 发布会中,索尼官方公布了忍者龙剑传系列新作《忍者龙剑传外传:怒之羁绊》,该作的故事开始于隼龙为遵循父亲遗愿而前往美国之时,此外官方宣布游戏将于 2025 年 7 月 31 日发售。 《忍者龙剑传外传:怒之羁绊》故事开始于隼龙为遵循父亲的遗…

    2026年9月6日 用户投稿
    000
  • vscode jshint 插件安装报错

    在安装vscode的jshint插件时,如果遇到右下角提示报错信息如下: Failed to load jshint library.Please install jshint in your workspace folder using’npm install jshint&#8217…

    2026年9月6日
    100
  • 经典归来!《城市猎人》重制2026年2月登陆多平台

    经典归来!《城市猎人》重制2026年2月登陆多平台经典归来!《城市猎人》重制2026年2月登陆多平台经典归来!《城市猎人》重制2026年2月登陆多平台经典归来!《城市猎人》重制2026年2月登陆多平台

    近日,SUNSOFT、Clouded Leopard Entertainment携手开发团队Red Art Studios正式宣布,将重启1990年在PC Engine平台推出的经典横向卷轴动作游戏《城市猎人》。此次全面重制版定于2026年2月26日全球同步发售,登陆PlayStation 5、Xb…

    2026年9月6日 用户投稿
    100
  • 广汽菲克破产清算案陷入僵局:核心资产依然无人接盘

    广汽菲克破产清算最新进展:资产拍卖流拍,售后服务成难题 广汽菲克管理人近日发布破产清算案最新进展报告,报告显示,尽管管理人已积极与长沙经开区管委会合作,并与多家潜在投资者进行了接触和谈判,但最终未能达成投资意向。此外,在京东资产交易平台上进行的五次资产拍卖也均因无人报名而流拍。目前,管理人仍在积极寻…

    2026年9月6日
    000
  • 商务部等8部门:探索逐步放宽或取消限购政策 更好满足居民汽车购买需求

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 近日,商务部等八部门联合发布《关于开展汽车流通消费改革试点工作的通知》(以下简称“通知”),旨在稳定和扩大汽车消费市场,其中特别提到要优化汽车限购限行措施。 通知强调建立汽车促消费部门联动机制,…

    2026年9月6日
    000
  • 工信部:2024年通信业新兴业务收入4348亿元 同比增一成

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 2024年通信业蓬勃发展,新兴业务持续强劲增长!根据工信部1月26日发布的统计公报,2024年通信业新兴业务收入达4348亿元,同比增长10.6%。这其中包括云计算、大数据、移动物联网以及数据中…

    2026年9月6日
    000
  • 索尼确认仍然计划推出《马拉松》和《Fairgame$》

    索尼确认将继续推出《马拉松》和《fairgame$》,其中《马拉松》计划在本财年内发售。 在近期面向投资者的演示中,索尼明确指出,《马拉松》将在2026年4月1日前正式发布,而《Fairgame$》则标注为“即将推出”。 PlayStation工作室业务集团首席执行官赫尔曼·胡尔斯特在与投资者进行的…

    2026年9月6日
    100
  • 合肥工业大学在毫米波近场稀疏成像算法领域取得新进展

    合肥工业大学微电子学院科研团队在毫米波近场成像领域取得重要进展,研发出两种新型算法,并分别发表于《ieee transactions on instrumentation and measurement》和《ieee transactions on aerospace and electronic …

    2026年9月6日
    000
  • 北京今年向无车家庭增发4万个新能源小客车指标

    ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜ 北京市2025年小客车指标政策已公布,全年共计10万个指标,其中新能源指标占比高达8万个,普通燃油车指标仅为2万个。 为满足无车家庭购车需求,北京市政府将于5月26日额外增发4万个新能源小客车指…

    2026年9月6日
    100
  • 免费PPT工具好用吗_评测免费PPT工具的实用性与功能

    免费PPT工具能满足高效制作专业演示文稿的需求。1、AiPPT支持中文一键生成,适配多种场景;2、Gamma主打极简设计与流畅交互;3、笔灵PPT擅长文档转PPT并优化文案;4、Canva可画提供拖拽式视觉编辑;5、墨刀AIPPT强化数据可视化与团队协作,均在MacBook Air M2上运行良好。…

    2026年9月6日
    100
  • VSCode怎么设置注释头_VSCode自定义文件头注释与代码模板教程

    答案:通过VSCode内置用户代码片段和扩展实现自定义注释头与代码模板,提升开发效率、规范代码并支持自动更新。首先使用内置Snippets功能创建语言专属或全局代码片段,通过JSON定义前缀、内容及变量如$TM_FULLNAME和$CURRENT_YEAR等,实现快速插入文件头;其次,为实现新建文件…

    2026年9月6日
    200
  • 电脑主机开机提示无启动设备故障排查及修复教程

    电脑主机开机提示无启动设备故障排查及修复教程电脑主机开机提示无启动设备故障排查及修复教程电脑主机开机提示无启动设备故障排查及修复教程电脑主机开机提示无启动设备故障排查及修复教程

    电脑开机提示“无启动设备”通常是因为系统无法识别启动盘。1. 首先应拔除所有外部设备,避免被误识别为启动项;2. 检查硬盘的数据线和电源线是否松动,必要时更换sata线;3. 进入bios/uefi设置,查看硬盘是否被识别、调整启动顺序、确认sata模式是否正确;4. 若软件层面异常,可用pe工具修…

    2026年9月6日 用户投稿
    200
  • 比亚迪计划2025年在日本发售插电式混合动力车

    比亚迪将在日本市场发力插电式混合动力车(phv)。这家中国新能源汽车巨头计划于2025年底在日本推出其phv车型,并将在未来两三年内陆续投放更多型号。此举旨在进一步拓展其全球市场,尤其是在插电式混合动力车领域,对日本本土车企构成潜在竞争压力。 ☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免…

    2026年9月6日
    000
  • 北京大学团队在光钟领域取得两项重要进展

    北京大学团队在光钟领域取得两项重要进展北京大学团队在光钟领域取得两项重要进展北京大学团队在光钟领域取得两项重要进展北京大学团队在光钟领域取得两项重要进展

    北京大学电子学院陈景标教授团队在光钟研究领域取得重大突破,于2025年1月21日在《applied physics letters》期刊上发表两项重要成果,为未来光钟的实际应用开辟了新途径。 目前实验室级光钟精度已达到数百亿年误差1秒,远超现有微波原子钟。国际计量大会正计划利用光钟重新定义“秒”。 …

    2026年9月6日 用户投稿
    000
  • 清华大学研究组首次在双重编码量子比特之间实现高保真度量子纠缠门

    清华大学科研团队在双重编码量子比特量子逻辑门研究中取得突破性进展,成功在钡离子超精细能级中实现了双重编码量子比特间的直接纠缠逻辑门。这项研究成果显著降低了量子线路复杂度,为未来量子纠错和离子-光子量子网络应用铺平了道路。 离子阱技术是构建大规模通用量子计算机的热门选择,已成功实现高保真量子比特操作。…

    2026年9月6日
    000
  • 崩坏星穹铁道6月兑换码大全

    崩坏星穹铁道6月兑换码汇总?崩坏星穹铁道6月兑换码最新整理?兑换码有不同种类,请按照时效性优先进行兑换: 崩坏星穹铁道6月兑换码列表 一、限时可用兑换码(2025年6月15日-30日) 兑换码 | 有效时间 | 奖励内容(部分需进入游戏确认)| 获取渠道 MB6SZQJX5E6Y | 6月15日 |…

    2026年9月6日
    000

发表回复

登录后才能评论
关注微信