以编程方式使用文档

Bright Data 提供了一个强大的 Web Scraper API,允许您从 44 个流行网站提取结构化数据,包括电子商务网站(Amazon、Walmart、eBay)、社交媒体(LinkedIn、Instagram、TikTok、Facebook)等,特别适用于需要可靠结构化网络数据源的 AI 代理。

概述

集成详情

|Class|Package|Serializable|JS support|Version| |:--|:--|:-:|:-:|:-:| |BrightDataWebScraperAPI|langchain-brightdata|✅|❌|!PyPI - 版本|

工具特性

|Native async|Returns artifact|Return data|Pricing| |:-:|:-:|:--|:-:| |❌|❌|网站结构化数据(Amazon 产品、LinkedIn 个人资料等)|需要 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 BrightDataWebScraperAPI

scraper_tool = BrightDataWebScraperAPI(bright_data_api_key="your-api-key")

实例化

这里展示如何实例化 BrightDataWebScraperAPI 工具。该工具允许您使用 Bright Data 的 Dataset API 从各种网站提取结构化数据,包括 Amazon 产品详情、LinkedIn 个人资料等。

该工具在实例化时接受以下参数:

  • - bright_data_api_key (必需,str):您的 Bright Data API 密钥用于身份验证。

调用

基本用法

from langchain_brightdata import BrightDataWebScraperAPI

# Initialize the tool
scraper_tool = BrightDataWebScraperAPI(
    bright_data_api_key="your-api-key"  # Optional if set in environment variables
)

# Extract Amazon product data
results = scraper_tool.invoke(
    {"url": "https://www.amazon.com/dp/B08L5TNJHG", "dataset_type": "amazon_product"}
)

print(results)

带参数的高级用法

from langchain_brightdata import BrightDataWebScraperAPI

# Initialize with default parameters
scraper_tool = BrightDataWebScraperAPI(bright_data_api_key="your-api-key")

# Extract Amazon product data with location-specific pricing
results = scraper_tool.invoke(
    {
        "url": "https://www.amazon.com/dp/B08L5TNJHG",
        "dataset_type": "amazon_product",
        "zipcode": "10001",  # Get pricing for New York City
    }
)

print(results)

# Extract LinkedIn profile data
linkedin_results = scraper_tool.invoke(
    {
        "url": "https://www.linkedin.com/in/satyanadella/",
        "dataset_type": "linkedin_person_profile",
    }
)

print(linkedin_results)

自定义选项

BrightDataWebScraperAPI 工具接受多个自定义参数:

|Parameter|Type|Description| |:--|:--|:--| |url|str|要提取数据的 URL| |dataset_type|str|要使用的数据集类型(见下方可用类型)| |zipcode|str|用于位置特定数据的可选邮政编码| |keyword|str|搜索关键词(用于 amazon_product_search)| |first_name|str|名字(用于 linkedin_people_search)| |last_name|str|姓氏(用于 linkedin_people_search)| |num_of_reviews|str|评论数量(用于 facebook_company_reviews)| |num_of_comments|str|评论数量(用于 youtube_comments,默认:10)| |days_limit|str|限制结果的天数(用于 google_maps_reviews,默认:3)|

可用数据集类型(44 个数据集)

电子商务(10 个数据集)

|Dataset Type|Description|Required Inputs| |:--|:--|:--| |amazon_product|产品详情、价格、规格|url (with /dp/)| |amazon_product_reviews|客户评论和评分|url (with /dp/)| |amazon_product_search|Amazon 搜索结果|keyword, url| |walmart_product|Walmart 产品数据|url (with /ip/)| |walmart_seller|Walmart 卖家信息|url| |ebay_product|eBay 产品数据|url| |homedepot_products|Home Depot 产品数据|url| |zara_products|Zara 产品数据|url| |etsy_products|Etsy 产品数据|url| |bestbuy_products|Best Buy 产品数据|url|

LinkedIn(5 个数据集)

|数据集类型|描述|必需输入| |:--|:--|:--| |linkedin_person_profile|职业档案数据|url| |linkedin_company_profile|公司信息|url| |linkedin_job_listings|职位列表详情|url| |linkedin_posts|帖子内容与互动|url| |linkedin_people_search|搜索人员|url, first_name, last_name|

商业智能(2 个数据集)

|数据集类型|描述|必需输入| |:--|:--|:--| |crunchbase_company|公司融资、投资者、指标|url| |zoominfo_company_profile|B2B 公司情报|url|

Instagram(4 个数据集)

|数据集类型|描述|必需输入| |:--|:--|:--| |instagram_profiles|档案数据与统计|url| |instagram_posts|帖子内容与互动|url| |instagram_reels|Reel 内容与指标|url| |instagram_comments|帖子评论|url|

Facebook(4 个数据集)

|数据集类型|描述|必需输入| |:--|:--|:--| |facebook_posts|帖子内容与互动|url| |facebook_marketplace_listings|Marketplace 列表数据|url| |facebook_company_reviews|公司评论|url, num_of_reviews| |facebook_events|活动详情|url|

TikTok(4 个数据集)

|数据集类型|描述|必需输入| |:--|:--|:--| |tiktok_profiles|档案数据与统计|url| |tiktok_posts|视频内容与指标|url| |tiktok_shop|商店产品数据|url| |tiktok_comments|视频评论|url|

YouTube(3 个数据集)

|数据集类型|描述|必需输入| |:--|:--|:--| |youtube_profiles|频道档案数据|url| |youtube_videos|视频内容与指标|url| |youtube_comments|视频评论|url, num_of_comments (默认值:10)|

Google(3 个数据集)

|数据集类型|描述|必需输入| |:--|:--|:--| |google_maps_reviews|地图商户评论|url, days_limit (默认值:3)| |google_shopping|购物产品数据|url| |google_play_store|应用商店数据|url|

其他平台(9 个数据集)

|数据集类型|描述|必需输入| |:--|:--|:--| |apple_app_store|iOS 应用数据|url| |x_posts|X (Twitter) 帖子数据|url| |reddit_posts|Reddit 帖子数据|url| |github_repository_file|GitHub 文件内容|url| |yahoo_finance_business|金融商业数据|url| |reuter_news|新闻文章数据|url| |zillow_properties_listing|房产列表数据|url| |booking_hotel_listings|酒店列表数据|url|

在代理中使用

from langchain_brightdata import BrightDataWebScraperAPI
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 Bright Data Web Scraper API tool
scraper_tool = BrightDataWebScraperAPI(bright_data_api_key="your-api-key")

# Create the agent with the tool
agent = create_agent(llm, [scraper_tool])

# Provide a user query
user_input = "Scrape Amazon product data for https://www.amazon.com/dp/B0D2Q9397Y?th=1 in New York (zipcode 10001)."

# Stream the agent's step-by-step output
stream = agent.stream_events({"messages": user_input}, version="v3")
for snapshot in stream.values:
    snapshot["messages"][-1].pretty_print()

API 参考