站点地图加载器#
- class langchain_community.document_loaders.sitemap.SitemapLoader(web_path: str, filter_urls: List[str] | None = None, parsing_function: Callable | None = None, blocksize: int | None = None, blocknum: int = 0, meta_function: Callable | None = None, is_local: bool = False, continue_on_failure: bool = False, restrict_to_same_domain: bool = True, max_depth: int = 10, **kwargs: Any)[源代码]#
加载站点地图及其URL。
- Security Note: This loader can be used to load all URLs specified in a sitemap.
如果恶意行为者获得了站点地图的访问权限,他们可以通过修改站点地图来强制服务器加载来自其他域的URL。这可能导致服务器端请求伪造(SSRF)攻击;例如,攻击者强制服务器加载来自内部服务端点的URL,这些端点通常不对外公开。虽然攻击者可能不会立即获得这些数据的访问权限,但这些数据可能会泄露到下游系统中(例如,数据加载器用于加载索引数据)。
此加载器是一个爬虫,通常不应部署为具有对任何内部服务器的网络访问权限。
控制谁可以提交爬取请求以及爬虫具有的网络访问权限。
默认情况下,如果站点地图不是本地文件,加载器将仅从与站点地图相同的域加载URL。可以通过将restrict_to_same_domain设置为False来禁用此功能(不推荐)。
如果站点地图是本地文件,默认情况下不会应用此类风险缓解措施。
使用filter URLs参数来限制可以加载的URL。
使用网页路径和可选的过滤URL进行初始化。
- Parameters:
web_path (str) – 站点地图的URL。也可以是本地路径
filter_urls (List[str] | None) – 一个正则表达式列表。如果指定,只有匹配其中一个过滤URL的URL才会被加载。 警告 过滤URL被解释为正则表达式。如果不希望特殊字符被解释为正则表达式语法,请记得转义它们。例如,. 在URL中经常出现,如果希望匹配字面的 . 而不是任意字符,应该进行转义。 当 restrict_to_same_domain 为 True 且站点地图不是本地文件时,restrict_to_same_domain 优先于 filter_urls。
parsing_function (Callable | None) – 用于解析 bs4.Soup 输出的函数
blocksize (int | None) – 每个区块中的站点地图位置数量
blocknum (int) – 应该加载的块的编号 - 从零开始索引。 默认值:0
meta_function (Callable | None) – 用于解析bs4.Soup输出的元数据的函数 在设置此方法时,请记住如果您正在使用此字段,也要将metadata[“loc”]复制到metadata[“source”]
is_local (bool) – 站点地图是否为本地文件。默认值:False
continue_on_failure (bool) – 是否在加载URL时发生错误时继续加载站点地图,发出警告而不是引发异常。将此设置为True可以使加载器更加健壮,但也可能导致数据丢失。默认值:False
restrict_to_same_domain (bool) – 是否限制加载的URL与站点地图的域名相同。注意:仅当站点地图不是本地文件时,此设置才会生效!
max_depth (int) – 跟踪站点地图链接的最大深度。默认值:10
kwargs (Any)
属性
web_path
方法
__init__
(web_path[, filter_urls, ...])使用网页路径和可选的过滤URL进行初始化。
异步从web_path中的URL(s)懒加载文本。
aload
()ascrape_all
(urls[, parser])异步获取所有URL,然后返回所有结果的soups。
fetch_all
(urls)以速率限制并发获取所有URL。
加载站点地图。
load
()将数据加载到文档对象中。
load_and_split
([text_splitter])加载文档并将其分割成块。
parse_sitemap
(soup, *[, depth])解析站点地图XML并加载到字典列表中。
scrape
([parser])从网页抓取数据并以BeautifulSoup格式返回。
scrape_all
(urls[, parser])获取所有URL,然后返回所有结果的soups。
- __init__(web_path: str, filter_urls: List[str] | None = None, parsing_function: Callable | None = None, blocksize: int | None = None, blocknum: int = 0, meta_function: Callable | None = None, is_local: bool = False, continue_on_failure: bool = False, restrict_to_same_domain: bool = True, max_depth: int = 10, **kwargs: Any)[source]#
使用网页路径和可选的过滤URL进行初始化。
- Parameters:
web_path (str) – 站点地图的URL。也可以是本地路径
filter_urls (List[str] | None) – 一个正则表达式列表。如果指定,只有匹配其中一个过滤URL的URL才会被加载。 警告 过滤URL被解释为正则表达式。如果不希望特殊字符被解释为正则表达式语法,请记得转义它们。例如,. 在URL中经常出现,如果希望匹配字面的 . 而不是任意字符,应该进行转义。 当 restrict_to_same_domain 为 True 且站点地图不是本地文件时,restrict_to_same_domain 优先于 filter_urls。
parsing_function (Callable | None) – 用于解析 bs4.Soup 输出的函数
blocksize (int | None) – 每个区块中的站点地图位置数量
blocknum (int) – 应该加载的块的编号 - 从零开始索引。 默认值:0
meta_function (Callable | None) – 用于解析bs4.Soup输出的元数据的函数 在设置此方法时,请记住如果您正在使用此字段,也要将metadata[“loc”]复制到metadata[“source”]
is_local (bool) – 站点地图是否为本地文件。默认值:False
continue_on_failure (bool) – 是否在加载URL时发生错误时继续加载站点地图,发出警告而不是引发异常。将此设置为True可以使加载器更加健壮,但也可能导致数据丢失。默认值:False
restrict_to_same_domain (bool) – 是否限制加载的URL与站点地图的域名相同。注意:仅当站点地图不是本地文件时,此设置才会生效!
max_depth (int) – 跟踪站点地图链接的最大深度。默认值:10
kwargs (Any)
- async alazy_load() AsyncIterator[Document] #
从web_path中的URL异步懒加载文本。
- Return type:
AsyncIterator[Document]
- aload() List[Document] #
自版本0.3.14起已弃用:请参阅API参考以获取更新的用法:https://python.langchain.com/api_reference/community/document_loaders/langchain_community.document_loaders.web_base.WebBaseLoader.html 在langchain-community==1.0之前不会移除。
从web_path中的URL异步加载文本到Documents中。
- Return type:
列表[文档]
- async ascrape_all(urls: List[str], parser: str | None = None) List[Any] #
异步获取所有URL,然后返回所有结果的soups。
- Parameters:
urls (列表[字符串])
parser (str | None)
- Return type:
列表[任意类型]
- async fetch_all(urls: List[str]) Any #
同时获取所有URL,并进行速率限制。
- Parameters:
urls (列表[字符串])
- Return type:
任何
- load_and_split(text_splitter: TextSplitter | None = None) list[Document] #
加载文档并将其分割成块。块以文档形式返回。
不要重写此方法。它应该被视为已弃用!
- Parameters:
text_splitter (可选[TextSplitter]) – 用于分割文档的TextSplitter实例。 默认为RecursiveCharacterTextSplitter。
- Returns:
文档列表。
- Return type:
列表[Document]
- parse_sitemap(soup: Any, *, depth: int = 0) List[dict] [source]#
解析站点地图XML并加载到字典列表中。
- Parameters:
soup (Any) – BeautifulSoup 对象。
depth (int) – 当前站点地图的深度。默认值:0
- Returns:
字典列表。
- Return type:
列表[字典]
- scrape(parser: str | None = None) Any #
从网页抓取数据并以BeautifulSoup格式返回。
- Parameters:
parser (str | None)
- Return type:
任何
- scrape_all(urls: List[str], parser: str | None = None) List[Any] #
获取所有URL,然后返回所有结果的soups。
- Parameters:
urls (列表[字符串])
parser (str | None)
- Return type:
列表[任意类型]
使用 SitemapLoader 的示例