SitemapLoader 继承自 WebBaseLoader,它从给定的 URL 加载站点地图,然后抓取并加载站点地图中的所有页面,将每个页面作为文档返回。 抓取是并发进行的。并发请求有合理的限制,默认为每秒 2 个。如果你不关心“好公民”原则,或者你控制被抓取的服务器,或者不关心负载,你可以增加此限制。请注意,虽然这会加速抓取过程,但可能会导致服务器阻止你。请小心!概览
集成详情
| 类别 | 包 | 本地 | 可序列化 | JS 支持 |
|---|---|---|---|---|
| SiteMapLoader | langchain-community | ✅ | ❌ | ✅ |
加载器功能
| 来源 | 文档延迟加载 | 原生异步支持 |
|---|---|---|
| SiteMapLoader | ✅ | ❌ |
设置
要访问 SiteMap 文档加载器,你需要安装langchain-community 集成包。
凭据
运行此程序不需要凭据。 要启用模型调用的自动化追踪,请设置你的 LangSmith API 密钥:安装
安装 langchain-community。修复笔记本 asyncio 错误
初始化
现在我们可以实例化模型对象并加载文档加载
requests_per_second 参数来增加最大并发请求数,并使用 requests_kwargs 在发送请求时传递 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 获取实时答案。