Zencoder中使用Scrapeless MCP服务器的网页爬虫完全指南
Expert Network Defense Engineer
主要收获:
- 一个 MCP 服务器,每个 Zencoder 代理。 Zencoder 在 VS Code 扩展和 JetBrains 插件中运行 Coding Agent、Unit Testing Agent、Ask Agent、E2E Testing Agent、Repo Info Agent 和 Web Dev Agent。将 Scrapeless MCP Server 添加到任一客户端为这些代理提供了一个强化的云浏览器、195 个国家的住宅代理、一种 SERP 抓取工具和一次性 Markdown/截图助手——通过一个配置块。
- 代理不再被阻止。 Zencoder 提供强大的 Repo Grokking 和代码生成,但其默认的网页抓取命中任何匿名 HTTP 请求的相同 JavaScript shell 和反机器人防护。通过 Scrapeless Scraping Browser 路由,云端 JavaScript 渲染、住宅代理出站以及每个会话的反检测指纹都被替换。
- 20 个 MCP 工具,一个命名空间。 浏览器原语(
browser_create、browser_goto、browser_get_html、browser_get_text、browser_snapshot、browser_click、browser_type、browser_press_key、browser_scroll、browser_screenshot、browser_close)、一次性页面助手(scrape_html、scrape_markdown、scrape_screenshot)和 Google 数据工具(google_search、google_trends)。代理的计划者按回合组合它们。 - 两个配置模式,一个服务器。 VS Code 从
settings.json中读取"zencoder.mcpServers",当前仅支持标准输入输出。JetBrains 2.13 及以上版本使用裸对象模式,并支持标准输入输出、可流式传输的 HTTP 和 OAuth2 传输。相同的scrapeless服务器条目适用于两者——仅包装键不同。 - 技能与 MCP 组合。 Zencoder 的技能系统(
~/.zencoder/skills/<name>/SKILL.md,YAML 前置信息 + markdown)教会代理 如何 使用工具;MCP 定义 存在哪些 工具。它们是加法的——同时安装两者,代理将获得工具界面以及使用它的手册。 - 设计上与模型无关。 Zencoder 在 Haiku 4.5、Sonnet 4.6、Opus 4.6、Opus 4.7、Gemini 3 Pro、Gemini 3 Flash、GPT-5.4 和 GPT-5.2 之间路由,通过相同的代理循环。Scrapeless MCP 集成在所有这些平台上均以相同方式运行——协议就是合同。
- 免费开始。 新的 Scrapeless 账户包括免费的 Scraping Browser 运行时——请在 app.scrapeless.com 注册。完整定价信息请见 scrapeless.com/en/pricing。
介绍:代理的有效性取决于其访问实时网络的能力
Zencoder 是一个围绕多代理工作流程构建的 AI 编码编排平台——用于实现的 Coding Agent、用于代码库上下文的 Repo Info Agent、用于覆盖率的 Unit Testing Agent、用于浏览器测试的 E2E Testing Agent、用于解释的 Ask Agent 和用于 UI 工作的 Web Dev Agent。它有两个表面:Visual Studio Code 扩展和 JetBrains 插件。对于本地代码,情况是完整的——Zencoder 读取代码库,规划更改并写入差异。
一旦任务需要当前的公共网络数据,图景就会变得模糊。Zencoder 的默认网页抓取返回与任何匿名 HTTP 请求相同的 JavaScript shell,而在商业网站上,渲染的 DOM 位于反机器人的挑战、住宅代理保护的 SERP 以及仅限 JavaScript 的单页应用后,这些应用在没有帮助的情况下不能达到。一个类似 “打开这个竞争对手定价页面并提取计划网格” 的提示在目标网站位于 Cloudflare Turnstile 后就不再是确定性的。
这篇文章通过一个配置块将 Scrapeless MCP Server 接入 Zencoder。接入后,每个 Zencoder 代理都有 20 个 MCP 工具映射到一个强化的云浏览器、一个 Google 搜索抓取工具、一个 Google 趋势抓取工具和一次性 HTML/Markdown/截图助手。代理按回合选择调用的工具;云浏览器处理 JavaScript 渲染、住宅代理出站和反检测指纹;IDE 继续负责代码生成、文件树和终端。有关在 Google Antigravity 中相同的 Scrapeless 表面,请参阅 Antigravity 集成演练;有关规范 MCP 服务器参考,请参阅 Google Maps 的 MCP 服务器演练。
您可以用它做什么
- 在 IDE 内部进行实时 API 和库研究。 使用
scrape_markdown请求 Coding Agent 抓取库的当前文档页面,并对渲染的文本进行推理,而不是对 API 的训练截止记忆进行推理。 - 在工作区内获得竞争对手定价快照。 将竞争对手 URL 放入代理聊天;返回代理可以粘贴到比较文件中的结构化定价行,旁边是消费它们的代码。
- 公共数据集引入正在构建的项目。 让代理遍历目录列表,提取类型记录,并直接写入JSON固定数据、SQL种子或与模型层相邻的TypeScript类型。
- 区域感知的搜索引擎结果页面和趋势信号。 在代理循环内部使用
google_search和google_trends为区域特定证据提供特征标志、A/B文案或内容模板。 - 用于RAG和项目文档的Markdown语料库。
scrape_markdown返回作为干净Markdown的发布者页面,代理可以将其分块、嵌入或存储为项目本地上下文。 - 设计和用户体验工作的视觉参考。
scrape_screenshot和browser_screenshot捕获渲染页面,以供视觉对比、布局参考或Web开发代理可以附加到对话中的设计输入。 - 通过一个提示进行多代理运行。 Repo信息代理收集代码库上下文,编码代理执行
browser_*链,单元测试代理验证生成的固定数据形状——所有这些都在一次Zencoder轮次中完成。
在Scrapeless,我们仅访问公开可用的数据,同时严格遵守适用的法律、法规和网站隐私政策。本文内容仅用于演示目的。
为什么选择Scrapeless MCP服务器
Scrapeless MCP服务器是在Scrapeless Scraping Browser前面的协议级接口——这是一个可定制的、抗检测的云浏览器,专为AI代理设计——加上Scrapeless数据工具(Google Search、Google Trends、页面级抓取助手)。特别是对于Zencoder,它带来了:
- 云端JavaScript渲染。 云浏览器是完整的Chromium,页面在提取之前已被加载,因此单页面应用、无限滚动的动态内容和懒加载面板是
browser_goto+browser_get_html的一级目标。 - 遍布195个国家的住宅代理。 地理绑定查询返回当地用户所见的列表。代理区域在Scrapeless账户上设置;每个查询的区域选择通过
scrapeless-scraping-browserCLI对外公开,供需要的工作流使用。 - 每个会话的抗检测指纹识别。 UA、时区、语言、屏幕分辨率、WebGL和Canvas在每个会话中随机化,因此长滚动会话以有机流量相同的方式呈现。
- 会话持久性。
browser_create任务ID在同一代理轮次中的后续browser_*调用中复用;所有Cookie、滚动位置和导航历史都在一个云浏览器会话内。 - 一个MCP命名空间。 代理所需的每个操作都是一个单一的工具调用——从Zencoder的代理工具面板可发现,由协议进行模式验证,并通过描述与提示匹配。
- 新账户的免费运行时。 在app.scrapeless.com的免费计划中获取API密钥。完整的MCP工具表面记录在github.com/scrapeless-ai/scrapeless-mcp-server,平台文档位于docs.scrapeless.com。
先决条件
- 已安装Zencoder。 可以是VS Code扩展或JetBrains插件(JetBrains 2.13+的完整标准输入+可流式HTTP+OAuth2 MCP支持)。
- 一个Scrapeless账户和API密钥 — 在app.scrapeless.com注册并从设置 → API密钥管理中复制密钥。
- 在工作站上安装Node.js 18或更新版本。 Zencoder在标准输入模式下生成
npx scrapeless-mcp-server作为子进程。 - 基本的JSON编辑熟悉度 — Zencoder MCP配置位于
settings.json中。
安装
设置分为五个子步骤。JSON模式在VS Code和JetBrains之间有所不同——选择与您正在配置的IDE相匹配的部分。
1. 获取您的Scrapeless API密钥
在app.scrapeless.com注册,打开仪表板,并在设置 → API密钥管理中创建一个密钥。复制该值——将在第3步的MCP配置中使用。
2. 打开Zencoder的MCP配置
选项A — 代理工具用户界面(建议适用于两个IDE):
- 点击Zencoder聊天面板右上角的**…**更多选项菜单。
- 选择代理工具。
- 打开自定义选项卡,点击添加自定义MCP。
- 填写配置表单(名称、命令、参数、环境)。用户界面会为您写入
settings.json。
选项B — 直接编辑settings.json:
- VS Code: 在Zencoder聊天中打开**…菜单 → 设置 → 向下滚动到MCP服务器部分 → 点击在settings.json中编辑**。
- JetBrains: 打开文件 → 设置(或在macOS上为JetBrains IDE → 设置)→ 展开工具 → Zencoder → MCP服务器。
3. 添加Scrapeless MCP服务器
JSON模式在两个IDE中是不同的 — VS Code将条目封装在一个"zencoder.mcpServers"顶级键内;JetBrains使用的是裸对象。
VS Code — stdio模式(目前在VS Code上唯一支持的传输方式):
json
"zencoder.mcpServers": {
"scrapeless": {
"command": "npx",
"args": ["-y", "scrapeless-mcp-server"],
"env": {
"SCRAPELESS_KEY": "YOUR_SCRAPELESS_KEY"
}
}
}
JetBrains — stdio模式:
json
{
"scrapeless": {
"command": "npx",
"args": ["-y", "scrapeless-mcp-server"],
"env": {
"SCRAPELESS_KEY": "YOUR_SCRAPELESS_KEY"
}
}
}
保存文件。在第一次运行时,npx -y scrapeless-mcp-server会下载包;后续的重启将重用缓存版本。
4. 或使用HTTP流式模式(仅JetBrains 2.13及以上版本)
JetBrains 2.13及以上版本支持stdio、流式HTTP和OAuth2 MCP传输;VS Code目前仅支持stdio(流式HTTP和OAuth2在Zencoder文档中标记为“即将推出”)。对于在托管开发容器或CI沙箱中运行的远程代理,npx无法可靠地生成长寿命的子进程,JetBrains用户可以将Zencoder指向Scrapeless托管的MCP端点:
json
{
"scrapeless": {
"type": "streamable-http",
"url": "https://api.scrapeless.com/mcp",
"headers": {
"x-api-token": "YOUR_SCRAPELESS_KEY"
}
}
}
同样的YOUR_SCRAPELESS_KEY在两种模式下都有效。VS Code用户在步骤3中保持在stdio块中,直到Zencoder为VS Code发布流式HTTP。
5. 验证连接
应用更改 — JetBrains在编辑设置后需要重新打开项目;VS Code通常会在重新加载时拾取更改。确保编码代理已启用。在一个新的Zencoder聊天会话中,输入:
"用Scrapeless浏览器工具打开https://example.com并告诉我页面标题。"
代理应该调用browser_create,然后是browser_goto,接着是browser_get_text(或browser_get_html),并回复**“示例域”**。如果返回正常,则MCP服务器已连接,API密钥有效,并且云浏览器可以访问。
如果没有,常见的首次运行故障及修复如下:
| 症状 | 可能原因 | 修复 |
|---|---|---|
代理工具中未列出scrapeless |
配置未加载 | 重新打开项目(JetBrains)或重新加载窗口(VS Code);重新检查JSON路径并确保文件解析无误 |
服务器返回Authentication failed / 401 |
API密钥错误或过期 | 从仪表板重新复制,粘贴到env.SCRAPELESS_KEY中,重启Zencoder |
npx第一次调用时挂起 |
npm网络慢或注册表超时 | 在终端中运行一次npx -y scrapeless-mcp-server以预缓存包,然后重启Zencoder |
MCP启动期间出现initialize response / connection closed错误 |
JSON-RPC握手期间stdout上写入非JSON内容 | 使用当前的scrapeless-mcp-server构建(日志写入stderr,JSON-RPC写入stdout),并确认没有shell包装器注入启动横幅 |
工具调用返回Access Denied HTML |
代理池在分配时返回了一个标记的IP | 请求代理调用browser_close然后再次browser_create;后续分配成功 |
如何实际使用它:提示你的Zencoder代理
安装后,代理负责发现 → 提取循环。MCP服务器将一个类型工具列表交给Zencoder;代理根据提示逐步读取工具描述并组装调用。没有需要创建的tools.json,也不需要从IDE侧发出手动MCP调用。
Zencoder为内置的原生集成保留@快捷方式 — @Jira有效因为Jira是一个原生集成;MCP服务器不是通过@<servername>来寻址的。代理的规划者将提示与工具描述匹配,因此请用行动来表述请求(“渲染页面在…”, “搜索Google获取…”,“将该URL抓取为markdown”),这样正确的Scrapeless工具就会被调用。
你可以粘贴的提示
| 你输入 | 代理执行的操作 |
|---|---|
"在Google上搜索vector database benchmarks 2026,并将前10个结果以JSON格式返回。" |
google_search → typed结果列表。 |
"渲染位于https://react.dev/learn/synchronizing-with-effects的React文档页面,并给我markdown。" |
scrape_markdown → 发布者页面作为markdown。 |
"打开https://pricing.example.com,滚动计划表,并以JSON格式返回名称、价格和功能列表。" |
browser_create → browser_goto → browser_scroll → browser_get_html → typed提取。 |
"获取美国Google趋势中关于developer tools的热门搜索主题。" |
google_trends。 |
"对https://example.com/landing进行全页截图,并将其保存到landing.tsx旁边。" |
scrape_screenshot → 在工作区中写入文件。 |
"打开 https://www.google.com/search?q=mortgage+rates 并返回搜索结果页面的卡片。" |
默认帐户区域决定代理出口;使用多个 API 密钥固定不同区域(请参见常见问题)。 |
| "对于之前 Google 搜索中的每一个结果,将页面渲染为 Markdown 并用两句话进行总结。" | 链接 google_search → scrape_markdown × N → LLM 摘要。 |
"快照 https://example.com 的主页并报告可访问性树。" |
browser_snapshot。 |
工作示例:Zencoder 中的定价页面提取
您输入:
"使用 Scrapeless 浏览器工具打开
https://example-saas.com/pricing,将计划网格滚动到底部,并以 JSON 格式返回每个计划的名称、价格和功能要点。将结果保存到打开的工作空间中的pricing.json。"
代理的计划(用简单英语描述):
- 调用
browser_create来创建一个云浏览器会话。 - 调用
browser_goto访问定价 URL。 - 调用
browser_wait_for针对计划卡地标,以便在提取时在填充的 DOM 上运行,而不是 SPA 外壳上。 - 调用
browser_scroll以显示任何折叠部分,然后browser_get_html。 - 将计划卡解析为 JSON 数组;将卡片上缺少的任何字段视为
null,而不是导致提取失败。 - 使用
browser_create返回的sessionId调用browser_close。 - 使用 Zencoder 内置的文件工具将数组写入
pricing.json。
您得到的结果(示例形状):
json
[
{
"name": "入门版",
"price": "$0 / 月",
"features": ["1 个席位", "1,000 次事件/月", "社区支持"]
},
{
"name": "专业版",
"price": "$29 / 月",
"features": ["10 个席位", "100K 次事件/月", "电子邮件支持", "自定义域名"]
},
{
"name": "商业版",
"price": "联系销售",
"features": ["无限席位", "自定义事件数量", "服务水平协议", "单点登录/SAML"]
}
]
// 该模式反映了代理在提示提取定价网格时发出的内容。
// 字段值是示例样本。
Zencoder 将 pricing.json 放入工作区树中,并在对话记录中显示每个 MCP 工具调用,以便逐步流程可以被审核。
设计提示:控制返回内容
| 表述 | 效果 |
|---|---|
| "…返回 JSON" / "…作为 markdown" | 输出格式。 |
| "…字段:仅名称、价格" | 限制提取。 |
"…并将其保存到工作空间中的 <path>" |
在抓取后触发 Zencoder 的内置文件工具。 |
| "…在提取之前单击每个卡片" | 触发逐行 browser_click + 重新提取。 |
| "…如果 HTML 提取失败,则使用页面截图" | 回退到 scrape_screenshot 和多模态提取。 |
| "…如果第一次响应为空,则重试一次" | 在新会话中触发 browser_close + browser_create 重试。 |
在免费计划中获取您的 API 密钥: app.scrapeless.com
Scrapeless MCP 工具表面
Zencoder 在 scrapeless 服务器连接时发现的完整工具列表:
| 工具 | 目的 |
|---|---|
browser_create |
创建云浏览器会话,返回 sessionId。 |
browser_goto |
在活动会话中导航到 URL。 |
browser_wait_for |
阻塞直到选择器渲染。 |
browser_wait |
休眠一段时间(毫秒)。 |
browser_get_html |
返回渲染的 DOM 作为文本负载。 |
browser_get_text |
返回可见页面文本。 |
browser_snapshot |
返回当前页面的可访问性树。 |
browser_click |
单击选择器。 |
browser_type |
输入到输入框中。 |
browser_press_key |
驱动键盘事件(Tab、Enter、End、PageDown 等)。 |
browser_scroll |
滚动活动文档。 |
browser_scroll_to |
滚动到绝对 (x, y) 坐标。 |
browser_screenshot |
捕获活动页面的屏幕截图。 |
browser_go_back / browser_go_forward |
导航历史。 |
browser_close |
释放云浏览器会话(需要 sessionId — 参数严格使用驼峰命名法)。 |
scrape_html |
一次性获取 URL,返回渲染的 HTML(不需要会话)。 |
scrape_markdown |
一次性获取 URL,返回干净的 markdown。 |
scrape_screenshot |
一次性截图 URL。 |
google_search |
搜索结果页面抓取器,返回输入的结果行。 |
google_trends |
主题在某个区域的趋势数据。 |
browser_* 工具通过 browser_create 返回的 sessionId 共享状态。scrape_* 和 Google 工具是无状态的,直接通过 Scrapeless API 路由而无需创建会话。工具参数在表面上使用驼峰命名法(sessionId,proxyCountry)。
五个为集成付费的工作流程
下面每个块都是 Zencoder 中一个基于提示的工作流程。Repo Info Agent 收集项目上下文,Coding Agent 运行 MCP 链,Unit Testing Agent 验证生成的固定形状 — 所有这些都在一个聊天回合内。
特征标志的副本通常依赖于用户当前搜索的内容。请要求代理调用 google_trends 获取目标地区的主题,然后调用 google_search 获取主要术语,并将结果写入运行应用程序使用的固定文件。整个循环在一个 Zencoder 转换中运行,并在重新发出提示时刷新。
2. 比较文件中的竞争对手定价跟踪器
将竞争对手定价网址列表放入聊天中,并要求代理提取每个页面的计划名称、价格和要点功能,按计划去重,并将合并表写入工作区中的 competitors.md。后续运行与之前的快照进行差异比较,仅更新发生变化的行。
3. 项目中的公共目录潜在客户列表
对于潜在客户生成原型,编码代理遍历公共目录(软件供应商、当地企业或持证专业人士的列表),对每个详细页面调用 browser_goto,提取联系信息行,并将记录写入模型层旁边的 seed.sql 或 leads.json。住宅代理出站和 JS 渲染发生在云浏览器层。
4. 来自出版商页面的 RAG 语料库
对于在 Zencoder 内部构建的嵌入管道,代理遍历种子 URL 列表,对每个页面调用 scrape_markdown,将 markdown 分割成块,并将每个块和 URL 的配对写入 corpus.jsonl。由于 markdown 已经清晰,块的边界位于标题和段落上,而不是中间的标签。
5. Web 开发代理的视觉回归资产
对于 UI 重构,请要求 Web 开发代理对 routes.ts 中的每个页面进行全页 scrape_screenshot,然后进行差异比较。截图作为文件返回到工作区;差异则在对话中存在。
技能与 MCP 是分开的 — 并且它们可以组合
Zencoder 除了 MCP 之外,还提供了一个 技能系统。技能位于 ~/.zencoder/skills/<name>/SKILL.md,包含 YAML 前置内容(name,description)以及教授代理 何时 和 如何 使用工具的 markdown 正文。技能可以与 SKILL.md 文件一起提供脚本和资源。
MCP 定义了 什么 工具存在;技能定义了 如何 好地使用它们。这两者是相辅相成的 — 安装一个教导代理如何将 browser_create → browser_goto → browser_wait_for → browser_get_html 组合成一个清晰的发现 → 提取模式的技能,可以提高自然语言提示在相同 MCP 工具表面上的成功率。该博客不假设 Zencoder 生态系统中提供任何预构建的 Scrapeless 技能;希望拥有一个的用户可以在 ~/.zencoder/skills/scrapeless/SKILL.md 中针对上述工具列表编写一个。
上线前需要了解的事项
- 标准输出规则很重要。 stdio MCP 传输使用 stdout 进行 JSON-RPC。向 stdout 写入非 JSON 文本的服务器会破坏握手。当前的
scrapeless-mcp-server构建将日志写入 stderr;如果使用自定义分支,请审核日志目标。 - 每次调用的区域控制不在 MCP 表面上。 云浏览器通过配置的 Scrapeless 账户的地区路由。需要每个查询区域固定(美国结果与德国结果或日本结果)的工作流调用
scrapeless-scraping-browserCLI,使用--proxy-country,或为不同的默认区域保留多个 API 密钥。 - VS Code 目前仅支持标准输入输出。 Zencoder 文档中标记为“即将推出”的流可HTTP和OAuth2传输记录在 VS Code 中。JetBrains 2.13+ 具备所有三种功能。需要 HTTP 的跨 IDE 配置模式必须停留在 JetBrains 或等待 VS Code 更新。
- JetBrains 在编辑
settings.json后需要重新打开项目; VS Code 通常在重新加载时会自动拾取更改。 - 并发。 每个主机应保持 ≤ 3 个并发会话以实现稳定运行。对于需要更高分发的批处理作业,建议从工作池驱动 CLI,而不是从单个代理并行发出 MCP 调用。
- MCP 响应格式。 工具响应以
content[0].text(纯文本)返回。返回文本的无状态数据工具(如google_search,google_trends,scrape_html,scrape_markdown)会在正文前添加前缀Response:\n\n;Zencoder 的计划自动处理该前缀,但解析原始响应的自定义脚本需要剥离该前缀。scrape_screenshot直接返回图像二进制。browser_*工具返回文本有效载荷而没有前缀。 - Scrapeless 直接从包中安装,而不是通过 Zencoder MCP 库安装。 截至撰写时,Scrapeless 未在 IDE 内的 MCP 库目录中列出 - 请直接粘贴步骤 3 中的 JSON 块,而不是搜索库。MCP 库路径也可用于 Zencoder 一键设置随附的预构建 MCP。
结论:扩展 Zencoder 代理在公共网络上的覆盖范围
将无废料MCP服务器连接到Zencoder收缩为VS Code中的settings.json中的一个JSON块——"zencoder.mcpServers",而在JetBrains中则是一个裸对象——然后进行重载。之后,每个Zencoder代理都有一个强化的云浏览器、住宅代理出口、Google SERP爬虫、趋势爬虫和一次性HTML/Markdown/截图助手——可通过自然语言提示访问。IDE不断掌控代码生成、文件树和终端;云浏览器使代理保持在真实、渲染的页面上。
有关Google Antigravity中相同的无废料表面,请参阅Antigravity集成指南。有关规范的MCP服务器工具表面和Google地图的工作示例,请参阅MCP服务器指南。对于更喜欢原始CDP路径而非MCP的代理表面,请参阅Hermes集成帖子。无废料的新账户级别包括免费的抓取浏览器运行时;在免费运行时消耗后的升级路径请访问scrapeless.com/en/pricing。该模式在每个代理表面上保持一致:为主机IDE固定正确的传输,在提取之前快照或渲染,在多个步骤之间保持会话,并将缺失字段视为空值。
准备好构建您的AI驱动的数据管道了吗?
加入我们的社区以声明免费的计划,并与在Scrapeless上构建Zencoder驱动数据管道的开发人员连接:Discord · Telegram。
在app.scrapeless.com注册以获取免费的抓取浏览器运行时,并将上述模式调整为您的Zencoder代理所需的工作区、区域和页面。
常见问题
问1:哪些Zencoder表面支持无废料MCP服务器?
VS Code扩展和JetBrains插件均支持。JSON模式有所不同(VS Code将条目包装在"zencoder.mcpServers"中;JetBrains使用裸对象),JetBrains 2.13+支持stdio + 可流式传输HTTP + OAuth2传输,而VS Code目前仅支持stdio。
问2:使用Zencoder + Scrapeless进行抓取合法吗?
抓取公开可见的数据在大多数法域内普遍被允许,但规则因国家和网站服务条款而异。请查阅目标网站的服务条款,适用时遵守robots.txt,未在法律基础上不得收集个人数据,并咨询法律顾问以进行商业规模的数据管道。
问3:我需要住宅代理吗?
对于任何具有显著反机器人保护的网站——大多数零售商、市场、SERP和大型SaaS着陆页,答案是肯定的。Scrapeless MCP服务器默认将每个browser_*和scrape_*调用通过住宅池路由;调用生效无需单独的代理配置。
问4:我可以从MCP表面为每个请求选择住宅代理区域吗?
不能通过MCP的browser_create工具选择——云浏览器会话使用在Scrapeless账户上配置的代理区域。对于每个查询区域选择(美国、德国、日本),通过scrapeless-scraping-browser CLI使用--proxy-country驱动云浏览器,或维护多个API密钥以适应不同的默认区域。
问5:stdio模式与可流式传输HTTP模式——哪个适合Zencoder?
VS Code目前仅支持stdio;JetBrains 2.13+两者均支持。对于开发者工作站,stdio是合适的默认设置——Zencoder将npx scrapeless-mcp-server作为子进程生成,并通过其stdin/stdout进行JSON-RPC通信。可流式传输HTTP(仅限JetBrains)在主机运行在托管开发容器或CI沙箱中时是合适的默认设置,在这种情况下,主机无法保持长时间运行的子进程存活。两种模式使用相同的API密钥。
问6:VS Code使用"zencoder.mcpServers"而JetBrains使用裸对象——为何存在差异?
这就是Zencoder的两个设置面板的连接方式。VS Code的settings.json是IDE的全局设置文件,带有扩展命名空间的密钥,因此Zencoder使用"zencoder.mcpServers"。JetBrains直接在工具 → Zencoder → MCP服务器下公开MCP服务器部分,因此用户粘贴的JSON仅为内部对象。command/args/env/type/url/headers键在两个IDE中的内容是相同的——只是包装方式不同。
问7:如何将API密钥保留在JSON文件之外?
在JSON中使用占位符,通过操作系统环境变量注入值。在启动Zencoder的shell中设置SCRAPELESS_KEY(在macOS/Linux中使用export SCRAPELESS_KEY=...,在Windows PowerShell中使用[Environment]::SetEnvironmentVariable("SCRAPELESS_KEY", "...", "User")),然后在配置的env块中引用${SCRAPELESS_KEY}。重启Zencoder以使新变量传播。
问8:第一次browser_create调用返回os error 10054或503。接下来怎么办?
两者都是Scrapeless住宅代理池上的瞬态会话启动错误。一次重试通常会成功——请让代理调用browser_close(如果会话已创建)并再次调用browser_create,或将调用包装在2-3次重试循环中。
Q9:Zencoder如何决定调用哪个Scrapeless工具?
每个MCP工具都有一个名称和一个模式;Zencoder的规划器读取描述并将其与提示相匹配。MCP服务器没有@<servername>的快捷方式——@Jira和@GitHub路由到原生集成,而不是MCP。自然地表达任务(“将此URL抓取为markdown”,“在谷歌上搜索X”),就会选择正确的Scrapeless工具。
Q10:技能是必需的吗,还是说有就好?
可选。MCP服务器本身就为代理提供了每个Scrapeless工具。位于~/.zencoder/skills/scrapeless/SKILL.md的技能通过教授代理发现→提取模式,提升提示与正确工具的成功率,但集成在没有技能的情况下也可以端到端工作。
Q11:我可以不使用Zencoder运行这个吗?
可以。Scrapeless MCP服务器是一个标准MCP服务器,可以从Claude Desktop、Claude Code、Cursor、OpenAI Codex CLI、Gemini CLI、VS Code + GitHub Copilot Chat、Google Antigravity,或任何基于MCP TypeScript SDK构建的自定义客户端进行调用。相同的JSON片段可以放入每个客户端中(包装键根据客户端进行调整)。对于非MCP表面,云浏览器也可以通过scrapeless-scraping-browser CLI以及wss://browser.scrapeless.com/browser的WSS端点进行访问。
在Scrapeless,我们仅访问公开可用的数据,并严格遵循适用的法律、法规和网站隐私政策。本博客中的内容仅供演示之用,不涉及任何非法或侵权活动。我们对使用本博客或第三方链接中的信息不做任何保证,并免除所有责任。在进行任何抓取活动之前,请咨询您的法律顾问,并审查目标网站的服务条款或获取必要的许可。



