Source code for langchain_community.document_loaders.docusaurus

"""从Docusarus文档加载文档"""
from typing import Any, List, Optional

from langchain_community.document_loaders.sitemap import SitemapLoader


[docs]class DocusaurusLoader(SitemapLoader): """从Docusaurus文档加载。 它利用SitemapLoader循环遍历Docusaurus文档网站生成的页面,并通过查找特定的HTML标签提取内容。默认情况下,解析器会搜索Docusaurus页面的主要内容,通常是<article>。您还可以通过将它们提供为列表来定义自己的自定义HTML标签,例如:["div", ".main", "a"]。"""
[docs] def __init__( self, url: str, custom_html_tags: Optional[List[str]] = None, **kwargs: Any, ): """初始化DocusaurusLoader 参数: url: Docusaurus网站的基本URL。 custom_html_tags: 可选的自定义HTML标签,用于从页面中提取内容。 kwargs: 用于扩展基础SitemapLoader的其他参数,例如: filter_urls, blocksize, meta_function, is_local, continue_on_failure """ if not kwargs.get("is_local"): url = f"{url}/sitemap.xml" self.custom_html_tags = custom_html_tags or ["main article"] super().__init__( url, parsing_function=kwargs.get("parsing_function") or self._parsing_function, **kwargs, )
def _parsing_function(self, content: Any) -> str: """从Docusaurus页面中解析特定元素。""" relevant_elements = content.select(",".join(self.custom_html_tags)) for element in relevant_elements: if element not in relevant_elements: element.decompose() return str(content.get_text())