Skip to main content
RecursiveUrlLoader 允许您从根 URL 递归抓取所有子链接,并将其解析为文档。

概述

集成详情

加载器特性

设置

凭证

使用 RecursiveUrlLoader 无需任何凭证。

安装

RecursiveUrlLoader 位于 langchain-community 包中。虽然没有其他必需的包,但如果您同时安装了 beautifulsoup4,您将获得更丰富的默认文档元数据。

实例化

现在我们可以实例化文档加载器对象并加载文档:

加载

使用 .load() 同步将所有文档加载到内存中,每个访问的 URL 对应一个文档。从初始 URL 开始,我们递归遍历所有链接的 URL,直到达到指定的最大深度。 让我们通过一个基本示例来了解如何在 Python 3.9 文档 上使用 RecursiveUrlLoader
很好!第一个文档看起来像是我们开始的根页面。让我们查看下一个文档的元数据:
这个 URL 看起来是我们根页面的子页面,这很棒!让我们从元数据转向检查其中一个文档的内容:
这看起来确实像是来自 URL docs.python.org/3.9/ 的 HTML,符合我们的预期。现在让我们看看可以对基本示例进行的一些变体,这些变体在不同情况下可能会有所帮助。

惰性加载

如果我们正在加载大量文档,并且我们的下游操作可以在所有加载文档的子集上完成,我们可以惰性地逐个加载文档,以最小化内存占用:
在这个例子中,我们一次最多只将 10 个文档加载到内存中。

添加提取器

默认情况下,加载器将每个链接的原始 HTML 设置为文档页面内容。要将此 HTML 解析为更人性化/LLM 友好的格式,您可以传入自定义的 extractor 方法:
这看起来好多了! 类似地,您可以传入 metadata_extractor 来自定义如何从 HTTP 响应中提取文档元数据。有关此内容的更多信息,请参阅 API 参考

API 参考

这些示例仅展示了修改默认 RecursiveUrlLoader 的几种方式,但还有许多其他修改可以根据您的用例进行最佳调整。使用参数 link_regexexclude_dirs 可以帮助您过滤掉不需要的 URL,aload()alazy_load() 可用于异步加载,等等。 有关配置和调用 RecursiveUrlLoader 的详细信息,请参阅 API 参考