langchain_community.document_loaders.sitemap.SitemapLoader

class langchain_community.document_loaders.sitemap.SitemapLoader(web_path: str, filter_urls: Optional[List[str]] = None, parsing_function: Optional[Callable] = None, blocksize: Optional[int] = None, blocknum: int = 0, meta_function: Optional[Callable] = None, is_local: bool = False, continue_on_failure: bool = False, restrict_to_same_domain: bool = True, **kwargs: Any)[source]

加载站点地图及其URL。

安全提示 :此加载器可用于加载站点地图中指定的所有URL。

如果恶意行为者获取了站点地图的访问权限,他们可以通过修改站点地图来强制 服务器加载其他域中的URL。这可能导致服务器端请求伪造(SSRF)攻击;例如, 攻击者可以强制服务器加载不公开访问的内部服务端点的URL。虽然攻击者 可能无法立即访问这些数据,但这些数据可能泄漏 到下游系统中(例如,数据加载器用于为索引加载数据)。

此加载器是一个网络爬虫,通常不应将网络爬虫部署 具有对任何内部服务器的网络访问权限。

控制谁可以提交爬取请求以及爬虫具有什么网络访问权限。

默认情况下,如果站点地图不是本地文件,则加载器将仅加载与站点地图相同域中的URL。 如果将 restrict_to_same_domain 设置为 False(不推荐),则可以禁用此功能。

如果站点地图是本地文件,则默认情况下不会应用此类风险缓解措施。

使用 filter URLs 参数来限制可以加载的URL。

请参阅 https://python.langchain.com/docs/security

使用网页路径和可选的过滤URL进行初始化。

参数:

web_path:网站地图的URL。也可以是本地路径。 filter_urls:正则表达式列表。如果指定,只有匹配其中一个过滤URL的URL将被加载。

警告 过滤URL将被解释为正则表达式。如果不希望其被解释为正则表达式语法,请记得转义特殊字符。例如,. 经常出现在URL中,如果要匹配字面上的 . 而不是任何字符,则应该转义它。 当 restrict_to_same_domain 为 True 且网站地图不是本地文件时,restrict_to_same_domain 优先于 filter_urls。

parsing_function:用于解析 bs4.Soup 输出的函数。 blocksize:每个块中的站点地图位置数。 blocknum:应加载的块的编号 - 从零开始计数。默认值:0 meta_function:用于解析 bs4.Soup 输出的元数据的函数。

当设置此方法时,还要记得将 metadata[“loc”] 复制到 metadata[“source”],如果正在使用此字段。

is_local:站点地图是否为本地文件。默认值:False continue_on_failure:是否在加载URL时发生错误时继续加载站点地图,发出警告而不是引发异常。将此设置为 True 可使加载器更加健壮,但也可能导致数据丢失。默认值:False restrict_to_same_domain:是否将加载限制为与站点地图相同域的URL。注意:仅当站点地图不是本地文件时才会应用此选项!

Attributes

web_path

Methods

__init__(web_path[, filter_urls, ...])

使用网页路径和可选的过滤URL进行初始化。

alazy_load()

一个用于文档的惰性加载器。

aload()

从web_path中的URL异步加载文本到Documents中。

fetch_all(urls)

以限制速率并发获取所有URL。

lazy_load()

加载站点地图。

load()

将数据加载到文档对象中。

load_and_split([text_splitter])

加载文档并分割成块。块作为文档返回。

parse_sitemap(soup)

解析站点地图xml并加载到字典列表中。

scrape([parser])

从网页中抓取数据并以BeautifulSoup格式返回。

scrape_all(urls[, parser])

获取所有的URL,然后返回所有结果的网页源代码。

Parameters
  • web_path (str) –

  • filter_urls (Optional[List[str]]) –

  • parsing_function (Optional[Callable]) –

  • blocksize (Optional[int]) –

  • blocknum (int) –

  • meta_function (Optional[Callable]) –

  • is_local (bool) –

  • continue_on_failure (bool) –

  • restrict_to_same_domain (bool) –

  • kwargs (Any) –

__init__(web_path: str, filter_urls: Optional[List[str]] = None, parsing_function: Optional[Callable] = None, blocksize: Optional[int] = None, blocknum: int = 0, meta_function: Optional[Callable] = None, is_local: bool = False, continue_on_failure: bool = False, restrict_to_same_domain: bool = True, **kwargs: Any)[source]

使用网页路径和可选的过滤URL进行初始化。

参数:

web_path:网站地图的URL。也可以是本地路径。 filter_urls:正则表达式列表。如果指定,只有匹配其中一个过滤URL的URL将被加载。

警告 过滤URL将被解释为正则表达式。如果不希望其被解释为正则表达式语法,请记得转义特殊字符。例如,. 经常出现在URL中,如果要匹配字面上的 . 而不是任何字符,则应该转义它。 当 restrict_to_same_domain 为 True 且网站地图不是本地文件时,restrict_to_same_domain 优先于 filter_urls。

parsing_function:用于解析 bs4.Soup 输出的函数。 blocksize:每个块中的站点地图位置数。 blocknum:应加载的块的编号 - 从零开始计数。默认值:0 meta_function:用于解析 bs4.Soup 输出的元数据的函数。

当设置此方法时,还要记得将 metadata[“loc”] 复制到 metadata[“source”],如果正在使用此字段。

is_local:站点地图是否为本地文件。默认值:False continue_on_failure:是否在加载URL时发生错误时继续加载站点地图,发出警告而不是引发异常。将此设置为 True 可使加载器更加健壮,但也可能导致数据丢失。默认值:False restrict_to_same_domain:是否将加载限制为与站点地图相同域的URL。注意:仅当站点地图不是本地文件时才会应用此选项!

Parameters
  • web_path (str) –

  • filter_urls (Optional[List[str]]) –

  • parsing_function (Optional[Callable]) –

  • blocksize (Optional[int]) –

  • blocknum (int) –

  • meta_function (Optional[Callable]) –

  • is_local (bool) –

  • continue_on_failure (bool) –

  • restrict_to_same_domain (bool) –

  • kwargs (Any) –

async alazy_load() AsyncIterator[Document]

一个用于文档的惰性加载器。

Return type

AsyncIterator[Document]

aload() List[Document]

从web_path中的URL异步加载文本到Documents中。

Return type

List[Document]

async fetch_all(urls: List[str]) Any

以限制速率并发获取所有URL。

Parameters

urls (List[str]) –

Return type

Any

lazy_load() Iterator[Document][source]

加载站点地图。

Return type

Iterator[Document]

load() List[Document]

将数据加载到文档对象中。

Return type

List[Document]

load_and_split(text_splitter: Optional[TextSplitter] = None) List[Document]

加载文档并分割成块。块作为文档返回。

不要覆盖此方法。应该被视为已弃用!

参数:
text_splitter: 用于分割文档的TextSplitter实例。

默认为RecursiveCharacterTextSplitter。

返回:

文档列表。

Parameters

text_splitter (Optional[TextSplitter]) –

Return type

List[Document]

parse_sitemap(soup: Any) List[dict][source]

解析站点地图xml并加载到字典列表中。

参数:

soup:BeautifulSoup对象。

返回:

字典列表。

Parameters

soup (Any) –

Return type

List[dict]

scrape(parser: Optional[str] = None) Any

从网页中抓取数据并以BeautifulSoup格式返回。

Parameters

parser (Optional[str]) –

Return type

Any

scrape_all(urls: List[str], parser: Optional[str] = None) List[Any]

获取所有的URL,然后返回所有结果的网页源代码。

Parameters
  • urls (List[str]) –

  • parser (Optional[str]) –

Return type

List[Any]

Examples using SitemapLoader