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。
使用网页路径和可选的过滤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进行初始化。
一个用于文档的惰性加载器。
aload
()从web_path中的URL异步加载文本到Documents中。
fetch_all
(urls)以限制速率并发获取所有URL。
加载站点地图。
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 fetch_all(urls: List[str]) Any ¶
以限制速率并发获取所有URL。
- Parameters
urls (List[str]) –
- Return type
Any
- 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]