LangChain
抓取网页内容的 LangChain 管线(loaders、retrievers、web 搜索工具)可通过 helodata 路由,避免 LLM 驱动采集或 RAG 摄取中被 IP 屏蔽。
文档加载器
WebBaseLoader、PlaywrightURLLoader 等底层用 requests / httpx / Playwright,在对应客户端上设代理即可。
WebBaseLoader
from langchain_community.document_loaders import WebBaseLoader
USER = "helo_s1a2b3c4d5e-type-res-region-us"
PASS = "PASSWORD"
proxy = f"http://{USER}:{PASS}@gate.helodata.io:7777"
loader = WebBaseLoader("https://example.com")
loader.requests_kwargs = {
"proxies": {"http": proxy, "https": proxy},
"timeout": 30,
}
docs = loader.load()PlaywrightURLLoader
Web 搜索工具
TavilySearch、DuckDuckGoSearchRun 等命中外部 API 时是否需要代理因情况而异。对基于 HTTP 抓取的工具(如 RequestsGetTool),注入带代理的客户端:
每次 LLM 调用使用粘性会话
LangChain agent 一次 chain 内常有多个子请求,用粘性会话让目标看到一致的 IP 行为:
整个 chain 内所有子请求复用同一个 proxy。
标签做归因
通过 X-Helodata-Tag 头把 LLM 驱动的流量与其他爬取分开统计:
常见陷阱
部分版本的
UnstructuredURLLoader忽略代理 — 改用WebBaseLoader,或先用requests预下载。异步 loader — 把客户端换成
httpx.AsyncClient(proxy=proxy);aiohttp按请求传proxy=。
最后更新于
这有帮助吗?