SitemapLoader 继承自 WebBaseLoader,从给定 URL 加载网站地图,然后抓取并加载网站地图中的所有页面,将每个页面作为 Document 返回。
抓取是并发进行的。并发请求有合理限制,默认每秒 2 个。如果您不介意给服务器增加负担,或者您控制着被抓取的服务器,或者不在意服务器负载,可以提高此限制。注意,虽然这会加快抓取速度,但可能导致服务器封锁您。请谨慎操作!
概述
集成详情
| 类 | 包 | 本地支持 | 可序列化 | JS 支持 |
|---|---|---|---|---|
| SiteMapLoader | langchain-community | ✅ | ❌ | ✅ |
加载器功能
| 来源 | 文档懒加载 | 原生异步支持 |
|---|---|---|
| SiteMapLoader | ✅ | ❌ |
安装
要访问 SiteMap 文档加载器,您需要安装langchain-community 集成包。
凭证
无需任何凭证即可运行。 要启用模型调用的自动追踪,请设置您的 LangSmith API 密钥:安装依赖
安装 langchain-community。修复笔记本中的 asyncio bug
初始化
现在可以实例化模型对象并加载文档:加载
requests_per_second 参数来增加最大并发请求数,并使用 requests_kwargs 传入发送请求时的关键字参数。
懒加载
您也可以懒加载页面,以降低内存占用。过滤网站地图 URL
网站地图文件可能非常庞大,包含数千个 URL。通常您并不需要全部内容。您可以通过向filter_urls 参数传入字符串列表或正则表达式模式来过滤 URL,只有匹配其中一个模式的 URL 才会被加载。
添加自定义抓取规则
SitemapLoader 使用 beautifulsoup4 进行抓取,默认会抓取页面上的所有元素。SitemapLoader 构造函数接受自定义抓取函数,可帮助您根据具体需求定制抓取流程;例如,您可能希望避免抓取页眉或导航元素。
以下示例演示如何开发并使用自定义函数来排除导航和页眉元素。
导入 beautifulsoup4 库并定义自定义函数。
SitemapLoader 对象。
本地网站地图
网站地图加载器也可用于加载本地文件。API 参考
有关 SiteMapLoader 所有功能和配置的详细文档,请参阅 API 参考:python.langchain.com/api_reference/community/document_loaders/langchain_community.document_loaders.sitemap.SitemapLoader.html#langchain_community.document_loaders.sitemap.SitemapLoader将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时解答。

