AI

使用 MCP 服务器进行网页爬虫:分步指南

创建 MCP 服务器以按需爬虫数据,连接开发者工具,并集成 Bright Data 以获取实时 AI 就绪网页数据。
3 分钟阅读
使用 MCP 进行网络爬取

本指南将探讨 MCP 如何革新网页爬虫工作流,并逐步介绍如何实现用于网页数据提取的 Bright Data 的 Web MCP 服务器。你将学习如何设置一个系统,使 LLM 能够通过与你的 AI 助手进行简单的对话式提示来获取实时网页数据,即使来自受到严密保护的网站也可以。

瓶颈:为什么 LLM 难以进行真实世界交互(以及 MCP 如何解决)

大型语言模型是在互联网的静态快照上训练的,因此开箱即用时它们无法

  • 打开实时网站或数据库
  • 运行自定义脚本
  • 绕过 CAPTCHA 和其他机器人防护
  • 执行 JavaScript 来提取动态数据

你可以自己试试:向 Claude 询问某个 Best Buy 商品的当前价格。Claude 有一个 Web Search 模式,但由于它依赖 Brave Search 的缓存索引,价格和库存水平通常已经过时。此外,它无法执行 JavaScript 或绕过 Best Buy 的安全挑战,导致关键细节无法访问。

Claude 上没有更新的价格数据

这就是 Model Context Protocol (MCP)——一个开放的 JSON-RPC 规范,它使 LLM 能够调用外部工具,如爬虫工具、数据库和 CI 流水线,同时保持沙盒安全。尽管它最初由 Anthropic 提出,但现已发展成为社区维护的标准。

当 Claude 连接到 Web MCP 服务器时,Best Buy 数据会实时流入。通过一次 MCP 调用,服务器会启动无头浏览器,通过代理轮换,突破 CAPTCHA,并为模型提供干净的 JSON 以供分析。

Claude 上使用 Bright Data 的 MCP 服务器获取更新的价格数据

暂时不用担心连接配置——我们将在后面的部分逐步完成设置。

为什么 MCP 重要

  • 开放标准,无供应商锁定。 任何支持 MCP 的 LLM 客户端都可以通过相同的 JSON-RPC 契约与任何 MCP 服务器通信。
  • 可插拔的传输和模型。 从 stdio 切换到 Streaming HTTP——或从 Claude 切换到 Gemini——无需改动你的爬虫或数据库逻辑。
  • 实时操作,不只是聊天。 服务器暴露实时工具(爬虫工具、API、构建钩子),因此代理可以返回新鲜数据,并真正完成工作。

将 MCP 想象成 LLM 的 USB-C 端口:今天插入一个爬虫工具,明天插入一个数据库,或下周插入一个内部微服务——无需定制集成。

什么是 Model Context Protocol (MCP)?

Model Context Protocol (MCP) 是一个开放的 JSON-RPC 2.0 标准,它让大型语言模型能够通过一个统一接口调用外部工具——运行爬虫工具、查询 SQL、访问任意 REST API。

MCP 补充了 检索增强生成 (RAG):RAG 从向量存储中拉取静态文档,而 MCP 可以获取实时数据或触发实时操作。在实践中,你可以将两者结合起来——检索文档,并在模型需要新鲜输入时调用工具。

核心组件

  1. Host: LLM 应用程序(Claude Desktop、Cursor、自定义代理)。
  2. MCP Client: Host 内部的轻量级、有状态连接器(一个客户端 ↔ 一个服务器)。
  3. Server: 封装外部系统(爬虫工具、SQL、Jira、Git…)并暴露工具,以及可选资源。
  4. Tool: 模型可以调用的单个可调用函数(scrape_urlsql.queryjira.create_issue)。
  5. External Resource: 服务器/工具与之交互的真实网站、数据库或 API。

请求/响应流程

  1. LLM 判断它需要外部数据或功能。
  2. MCP 客户端选择合适的服务器并发送 JSON-RPC 请求。
  3. 服务器执行操作(例如,爬虫、搜索、提交)并将结果流式传回客户端。
  4. Host 将响应馈入模型的上下文,为 LLM 提供新鲜事实或确认某个操作已完成。
mcp-架构图

图片来源:模型上下文协议

用于网页爬虫的 MCP

将网页爬虫工具连接到 Model Context Protocol (MCP),可以立即将原始 HTML 转换为 LLM 就绪的上下文,消除大多数 LLM 工作流中最慢、最混乱的步骤之一。

问题

传统爬虫工具返回的是充满广告、跟踪器和布局垃圾的非结构化 HTML。清理这些内容——去除噪声、隔离有用内容,并将其转换为可用格式——往往比爬虫本身花费更多时间。当数据需要是实时的时,这会变得更加痛苦。

MCP 服务器的作用

支持 MCP 的爬虫工具充当 LLM 与目标网站之间的精简适配器:

  1. 获取 页面,使用基本的 GET、无头浏览器或基于代理的解锁器。
  2. 转换 响应——只提取有用内容,并将其转换为结构化 JSON、Markdown 或纯文本。
  3. 注释 元数据,如 URL、时间戳、HTTP 状态、地理位置和 CAPTCHA 结果,以帮助 LLM 评估来源的新鲜度和可信度。
  4. 流式传输 清理后的结果,以标准的 MCP 兼容 JSON-RPC 响应返回。

由于 MCP 定义了一致的接口,每个 LLM 客户端——Claude Desktop、Cursor 或你自己的代理——无论抓取的是哪个网站,或服务器如何实现,都能接收结构化、节省 token 的输出。

用于网页爬虫的 Bright Data MCP 服务器

Bright Data Web MCP 服务器允许任何兼容 MCP 的客户端,如 Claude Desktop、Cursor IDE、Windsurf 或你的自定义代理,通过 Bright Data 的完整代理和抓取技术栈获取实时网页数据。

如果你的代理需要可靠、实时地访问公共网站,同时不想管理无头浏览器、代理池或 CAPTCHA 破解工具,那么此服务器提供了即插即用的解决方案。一次 MCP 调用即可让你访问:网络解锁器搜索引擎 API网页抓取器 API抓取浏览器(或 Browser API)。

关键功能

  • 交付 AI 就绪数据 自动获取网页内容并将其格式化为干净、结构化的输出(JSON、Markdown、纯文本),减少手动预处理的需求。
  • 随工作负载扩展: 构建于 Bright Data 的弹性基础设施之上,可处理高请求量,避免瓶颈或停机。
  • 绕过封锁和 CAPTCHA: 使用网络解锁器和其他高级反机器人机制,即使是最受保护的网站也能访问。
  • 支持全球定位: 利用覆盖 195 个国家/地区的代理网络,获取特定区域的内容并满足合规要求。
  • 易于集成: 只需最少设置,并可与任何兼容 MCP 的客户端开箱即用。

使用 Bright Data MCP 服务器的先决条件

  • Bright Data 账户:在 brightdata.com 注册。新用户每月可免费获得 5,000 个积分。
  • API 令牌: 转到你的控制面板 → Settings → API Tokens
  • 网络解锁器区域: 在你的 Bright Data 账户中创建一个区域(默认:mcp_unlocker)。你可以通过 WEB_UNLOCKER_ZONE 环境变量覆盖它。
  • (可选)抓取浏览器区域:仅在需要完整浏览器自动化时需要。请注意格式为 brd-customer-ID-zone-ZONE_NAME:PASSWORD 的认证字符串。
  • Node.js 18+:该服务器以 @brightdata/mcp 的形式发布在 npm 上。

在 Claude Desktop 中设置 Bright Data MCP

按照以下步骤将 Bright Data Web MCP 服务器与 Claude Desktop 集成:

步骤 1: 打开 Claude Desktop → Settings → Developer → Edit Config

步骤 2: 更新你的 claude_desktop_config.json,以包含 Bright Data Web MCP 服务器配置:

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<your-brightdata-api-token>",
        "WEB_UNLOCKER_ZONE": "<optional—override default zone name 'mcp_unlocker'>",
        "BROWSER_AUTH": "<optional—enable full browser control via Scraping Browser>"
      }
    }
  }
}

步骤 3: 保存配置文件并重启 Claude Desktop

现在你应该能看到 Bright Data 抓取工具可用并准备使用:

brightdata-mcp-可用工具

在 Cursor IDE 中设置 Bright Data Web MCP

只需几个步骤即可将 Bright Data Web MCP 服务器集成到 Cursor IDE:

步骤 1: 打开 Cursor IDE

步骤 2: 转到 Settings ⚙️ → MCP 部分

步骤 3: 点击 “Add a new global MCP 服务器”。这会打开 mcp.json 配置文件。

步骤 4: 添加 Bright Data Web MCP 服务器配置。你可以复用与 Claude Desktop 相同的结构:

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<your-brightdata-api-token>",
        "WEB_UNLOCKER_ZONE": "<optional—override default zone name 'mcp_unlocker'>",
        "BROWSER_AUTH": "<optional—enable full browser control via Scraping Browser>"
      }
    }
  }
}

步骤 5: 保存文件。Cursor 会自动检测新服务器。成功连接后,你会在服务器名称旁看到一个绿色状态指示器。如果工具没有立即出现,请尝试重启 Cursor IDE。

brightdata-mcp-cursor-设置

在 Windsurf 中设置 Bright Data MCP

通过这些简单步骤将 Bright Data 的 MCP 服务器连接到 Windsurf:

步骤 1: 打开 Settings → Windsurf Settings
步骤 2: 滚动到 Cascade 部分
步骤 3: 点击 “Add custom server +”。这将打开一个名为 mcp_config.json 的 JSON 配置文件。
步骤 4: 添加 Bright Data Web MCP 服务器配置,遵循用于 Claude Desktop 或 Cursor IDE 的相同格式:

{
  "mcpServers": {
    "Bright Data": {
      "command": "npx",
      "args": ["@brightdata/mcp"],
      "env": {
        "API_TOKEN": "<your-brightdata-api-token>",
        "WEB_UNLOCKER_ZONE": "<optional—override default zone name 'mcp_unlocker'>",
        "BROWSER_AUTH": "<optional—enable full browser control via Scraping Browser>"
      }
    }
  }
}

步骤 5: 保存文件并重启 Windsurf。现在你应该能在 MCP 工具列表中看到 Bright Data 工具可用。

brightdata-mcp-windsurf-设置

Bright Data MCP 实战:实际示例

配置完成后,你的 LLM 客户端可以利用 Bright Data Web MCP 服务器的全部功能。每个工具都针对特定用例而设计。查看完整工具目录

注意: 这些示例使用 Claude,但同样的流程适用于任何兼容 MCP 的客户端,如 WindsurfCursor。只需打开聊天窗口(Cmd + L)并粘贴你的提示,即可发起实时工具调用。

示例 1:提取 Zillow 房产列表

由于激进的机器人防护,Zillow 是出了名地难以抓取,但 Bright Data 的 MCP 技术栈可以无缝处理。

给 LLM 的提示:

Extract key property data in JSON format from this Zillow URL: 
https://www.zillow.com/apartments/arverne-ny/the-tides-at-arverne-by-the-sea/ChWHPZ/

幕后发生了什么:

  1. LLM 判断需要外部数据。
  2. 它触发相关的 Bright Data MCP 工具(例如 web_data_zillow_properties_listing 或备用通用爬虫)。
  3. 服务器使用网络解锁器,并可选使用抓取浏览器,以绕过机器人防护并渲染页面。
  4. 返回干净、结构化的 JSON。
brightdata-mcp-zillow-演示

示例 2:电商产品搜索(Amazon 和 Best Buy)

Amazon 和 Best Buy 是产品数据的高价值目标,但它们实施了强大的反抓取防御。

给 LLM 的提示:

I want to buy a DSLR camera, and my maximum budget is $1000 USD. Please visit amazon.com and bestbuy.com and find the top 3 DSLR cameras from each website that are priced under or up to $1000. For each camera, include the product name, price, and a direct link to the product page. Also, provide the latest 2 to 3 customer reviews for each camera.

幕后发生了什么:

  1. LLM 检测到需要来自两个不同电商网站的实时产品数据。
  2. 它调用合适的 Bright Data Web MCP 工具,通常是用于 Amazon 的 web_data_amazon_product_search
  3. 对于严重依赖客户端 JavaScript 的 Best Buy,会启动抓取浏览器来渲染内容、模拟交互并提取动态数据。
brightdata-mcp-电商-演示

来自 LLM 的示例输出:

brightdata-mcp-bestbuy-结果

示例 3:获取 YouTube 频道视频数据

YouTube 会动态加载其大部分内容,因此它是无头浏览器自动化的一个强用例。

给 LLM 的提示:

Extract the first 5 videos from the YouTube channel page https://www.youtube.com/@BrightData/videos. For each video, include the title, upload date, and number of views.

幕后发生了什么:

  1. LLM 检测到由于动态内容,需要基于浏览器的渲染。
  2. 如果配置了 BROWSER_AUTH,Bright Data Web MCP 服务器会启动一个抓取浏览器会话。
  3. 远程浏览器导航到频道页面,等待视频流加载,并提取结构化数据。
brightdata-mcp-youtube-演示

LLM 示例输出:

brightdata-mcp-youtube-结果

示例 4:Hacker News 标题

一个更简单的案例,展示 LLM 可以多快地摄取并格式化结构化文本数据。

给 LLM 的提示:

Give me the titles of the latest 5 news articles from Hacker News

幕后:

  • LLM 通过 Bright Data Web MCP 调用像 scrape_as_markdown 这样的通用爬虫工具。
  • 服务器获取 Hacker News 主页,解析顶部标题,并以干净的 Markdown 格式返回它们。

LLM 示例输出:

brightdata-mcp-hackernews-演示

🔥 很棒!这些示例展示了 Bright Data 的 Web MCP 服务器的广度,从提取静态 HTML 内容,到在受高级反机器人措施保护、JavaScript 丰富的网站上编排浏览器会话。

通过 Smithery CLI 的替代安装

你也可以使用 Smithery CLI 运行 Bright Data Web MCP 服务器。在终端中运行以下命令:

npx -y @smithery/cli install @luminati-io/brightdata-mcp --client windsurf

系统会提示你提供:

  • Smithery API Key – 如果你还没有,在此创建一个
  • Bright Data API Token
  • (可选) 网络解锁器 区域 Name
  • (可选) 爬虫浏览器 Auth String
brightdata-mcp-smithery-安装

设置完成后,打开 Windsurf 并启动聊天窗口。然后,输入任意提示。

示例提示:

List the 3 biggest AI companies by valuation as of 2026.

Windsurf 中的实时响应:

brightdata-mcp-windsurf-演示

如果你想在不安装任何东西的情况下测试 Bright Data Web MCP,请使用 Smithery Playground 在浏览器中尝试实时爬虫场景:

brightdata-mcp-smithery-playground

结论

本指南展示了 Model Context Protocol (MCP) 如何将传统语言模型扩展为能够与实时网页实时交互的代理。通过 Bright Data 的 Web MCP 服务器,单个 API 请求可以:

  • 从几乎任何网站获取新鲜的、特定地理位置的内容。
  • 绕过反机器人机制,包括自动化 CAPTCHA 破解
  • 控制完整的浏览器环境,以处理动态、JavaScript 密集型页面。

要构建针对 AI 驱动用例优化的可扩展、合规数据基础设施,请探索 Bright Data 的 AI 就绪网页数据基础设施——专为实时搜索、提取和大规模自动化而构建。

如需更高级的代理工作流,请学习如何将 Google ADK 与 MCP 服务器集成

支持支付宝等多种支付方式

Satyam Tripathi

技术写作者

5 years experience

Satyam Tripathi 帮助 SaaS 和数据初创公司将复杂技术转化为可执行的内容,提升开发者采用度并增强用户理解。

Expertise
Python 开发者教育 技术写作