详细解析 LangChain 的 AsyncHtmlLoader
和 Html2TextTransformer
在 LangChain 中,AsyncHtmlLoader
和 Html2TextTransformer
是两个常用的 Web 数据处理工具,主要用于异步获取网页 HTML 内容并将其转换为纯文本,方便后续的大模型(LLM)处理。下面我们详细介绍它们的功能、参数、实现原理及示例。
1. AsyncHtmlLoader
- 异步加载 HTML 页面
功能
AsyncHtmlLoader
是 LangChain 提供的一个异步文档加载器,用于并行获取多个网页的 HTML 内容,比传统的同步请求方式(如 requests.get(url)
)速度更快。
代码示例
from langchain_community.document_loaders import AsyncHtmlLoader# 需要爬取的网页链接
urls = ["https://www.espn.com", "https://lilianweng.github.io/posts/2023-06-23-agent/"]# 创建异步 HTML 加载器
loader = AsyncHtmlLoader(urls)# 加载 HTML 网页内容
docs = loader.load()
参数
参数 | 说明 | 默认值 |
---|---|---|
web_path | 单个 URL 或 URL 列表 | 必填 |
requests_per_second | 限制每秒请求数量,防止 IP 被封 | 2 |
trust_env | 是否使用环境变量(如 http_proxy 代理) | False |
工作原理
- 利用异步请求(Async IO):通过
aiohttp
或asyncio
并行请求多个网页,提高加载速度。 - 批量请求:支持一次性请求多个网页,而不是逐个请求ÿ