Bright Data 提供了一个强大的 Web Unlocker API,允许您访问可能受反机器人措施、地域限制或其他访问限制保护的网站,这使得它对于需要可靠网页内容提取的 AI 代理特别有用。
概述
集成详情
|类|包|可序列化|JS 支持|版本| |:--|:--|:-:|:-:|:-:| |BrightDataUnlocker|langchain-brightdata|✅|❌|!PyPI - 版本|
工具特性
|原生异步|返回产物|返回数据|定价| |:-:|:-:|:--|:-:| |❌|❌|网页的 HTML、Markdown 或截图|需要 Bright Data 账户|
设置
该集成位于 langchain-brightdata package.
pip install langchain-brightdata
您需要一个 Bright Data API 密钥才能使用此工具。您可以将其设置为环境变量:
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|输出格式:无(HTML)、"markdown" 或 "screenshot"|
数据格式选项
该 data_format 参数允许您指定内容的返回方式:
- -
Noneor"html"(默认):返回页面的标准 HTML 内容 - -
"markdown":返回转换为 markdown 格式的内容,这对直接输入 LLM 很有用 - -
"screenshot"返回渲染页面的 PNG 截图,用于可视化分析
在代理中使用
from langchain_brightdata import BrightDataUnlocker
from langchain_google_genai import ChatGoogleGenerativeAI
from langchain.agents import create_agent
# Initialize the LLM
llm = ChatGoogleGenerativeAI(model="gemini-2.5-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_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
stream = agent.stream_events({"messages": user_input}, version="v3")
for snapshot in stream.values:
snapshot["messages"][-1].pretty_print()