BrightData解锁器
Bright Data 提供强大的 Web Unlocker API,允许您访问可能受到反机器人措施、地理限制或其他访问限制保护的网站,这对于需要可靠 Web 内容提取的 AI 代理尤其有用。
概览
集成详情
| 类 | 包 | 可序列化 | JS 支持 | 最新包 |
|---|---|---|---|---|
| BrightDataUnlocker | langchain-brightdata | ✅ | ❌ |
工具功能
| 原生异步 | 返回制品 | 返回数据 | 定价 |
|---|---|---|---|
| ❌ | ❌ | HTML, Markdown, 或网页截图 | 需要 Bright Data 账户 |
设置
集成位于 langchain-brightdata 包中。
pip install langchain-brightdata
您需要一个 Bright Data API 密钥才能使用此工具。您可以将其设置为环境变量:
import os
os.environ["BRIGHT_DATA_API_KEY"] = "your-api-key"
或者在初始化工具时直接传递:
from langchain_brightdata import BrightDataUnlocker
unlocker_tool = BrightDataUnlocker(bright_data_api_key="your-api-key")
实例化
在此我们展示如何实例化 BrightDataUnlocker 工具。此工具允许您访问那些可能受到反机器人措施、地理限制或其他访问限制保护的网站,它使用了 Bright Data 的 Web Unlocker 服务。
该工具在实例化时接受多种参数:
bright_data_api_key(必需, str): 您用于身份验证的 Bright Data API 密钥。format(可选, Literal["raw"]): 响应内容的格式。默认为 "raw"。country(可选, str): 用于地理位置特定访问的两位字母国家代码(例如 "us", "gb", "de", "jp")。当您需要像从特定国家/地区访问一样查看网站时,请设置此项。默认为 None。zone(可选, str): 请求使用的 Bright Data 区域。 "unlocker" 区域针对访问可能阻止常规请求的网站进行了优化。默认为 "unlocker"。data_format(可选, Literal["html", "markdown", "screenshot"]): 检索内容的输出格式。选项包括:- "html" - 返回标准的 HTML 内容(默认)
- "markdown" - 返回转换为 markdown 格式的内容
- "screenshot" - 返回渲染页面的 PNG 截图
调用
基本用法
from langchain_brightdata import BrightDataUnlocker
# Initialize the tool
unlocker_tool = BrightDataUnlocker(
bright_data_api_key="your-api-key" # Optional if set in environment variables
)
# Access a webpage
result = unlocker_tool.invoke("https://example.com")
print(result)
高级用法与参数
from langchain_brightdata import BrightDataUnlocker
unlocker_tool = BrightDataUnlocker(
bright_data_api_key="your-api-key",
)
# Access a webpage with specific parameters
result = unlocker_tool.invoke(
{
"url": "https://example.com/region-restricted-content",
"country": "gb", # Access as if from Great Britain
"data_format": "html", # Get content in markdown format
"zone": "unlocker", # Use the unlocker zone
}
)
print(result)
定制选项
BrightDataUnlocker 工具接受多个参数以进行自定义:
| 参数 | 类型 | 描述 |
|---|---|---|
url | str | 要访问的 URL |
format | str | 响应内容的格式(默认值:“raw”) |
country | str | 用于地理区域特定访问的两位字母 国家代码(例如,“us”、“gb”) |
zone | str | 要使用的 Bright Data 区域(默认值:“unlocker”) |
data_format | str | 输出格式:None(HTML)、“markdown”或“screenshot” |
数据格式选项
data_format 参数允许您指定内容的返回方式:
None或"html"(默认):返回页面的标准 HTML 内容。"markdown":将内容转换为 markdown 格式返回,这对于直接输入到 LLM 非常有用。"screenshot":返回渲染后页面的 PNG 屏幕截图,对于可视化分析非常有用。
在 Agent 中使用
Here's how to use
from langchain_brightdata import BrightDataUnlocker
from langchain_google_genai import ChatGoogleGenerativeAI
from langgraph.prebuilt import create_react_agent
# Initialize the LLM
llm = ChatGoogleGenerativeAI(model="gemini-2.0-flash", google_api_key="your-api-key")
# Initialize the tool
bright_data_tool = BrightDataUnlocker(bright_data_api_key="your-api-key")
# Create the agent
agent = create_react_agent(llm, [bright_data_tool])
# Input URLs or prompt
user_input = "Get the content from https://example.com/region-restricted-page - access it from GB"
# Stream the agent's output step by step
for step in agent.stream(
{"messages": user_input},
stream_mode="values",
):
step["messages"][-1].pretty_print()
API Reference:ChatGoogleGenerativeAI | create_react_agent
API 参考
Related
- Tool conceptual guide
- Tool how-to guides