如何将 AdsCrawl 与 Oxylabs 代理配合使用(2026 指南)
将 AdsCrawl 浏览器自动化与 Oxylabs 代理连接:设置步骤、代码示例、轮换策略,以及解决地理封锁和 CAPTCHA 的方法。
如何将 AdsCrawl 与 Oxylabs 代理及网页抓取平台配合使用
AdsCrawl 通过 API 为你提供真实浏览器:渲染后的 HTML、Markdown、截图以及远程 Chrome DevTools 协议(CDP)会话。Oxylabs 提供网络层,让这些会话看起来像是来自正确城市的普通访客。两者结合使用,可以解决大规模采集中最困难的两个部分——渲染现代页面并在不被封锁的情况下访问它们。
本指南涵盖两个平台如何协同工作、具体设置步骤、可用代码、轮换策略以及你应该预期的故障模式。
为什么将浏览器 API 与代理平台结合使用
Oxylabs 代理及网页抓取平台产品界面。
大多数抓取失败不是解析问题,而是访问问题和渲染问题。
- 渲染: 单页应用、懒加载价格表和同意墙只有在 JavaScript 运行后才会出现。AdsCrawl 在返回内容之前会在真实浏览器中执行页面,因此你得到的是用户会看到的 DOM,而不是空壳。
- 访问: 数据中心 IP 范围被广泛标记。Oxylabs 住宅代理利用大量真实设备 IP 池,其数据中心、ISP 和移动代理类型覆盖了住宅代理过度或不足的情况。
- 一致性: AdsCrawl 在支持自定义代理配置的端点上提供该功能,并且每次 Cloud Browser 启动都需要有效的代理。这意味着你可以将会话固定到某个国家或城市,并在多步骤流程中保持相同的网络身份。
在实践中,Oxylabs 处理请求来自哪里;AdsCrawl 处理浏览器到达后做什么。
两个平台如何协同工作

Oxylabs Proxy & Web Scraping Platform product interface.
Oxylabs 代理及网页抓取平台产品界面。
| 层级 | AdsCrawl | Oxylabs |
|---|---|---|
| 浏览器执行 | 云浏览器会话、CDP 控制、Playwright 和 Puppeteer 支持 | 用于自动化的无头浏览器 |
| 输出格式 | HTML、Markdown、JSON 字段、PNG 截图 | Web Scraper API 结构化结果 |
| 网络身份 | 自定义代理字段、保存的指纹配置文件 | 住宅、数据中心、ISP、移动代理,支持城市级定位 |
| 困难目标 | 会话内 CAPTCHA 处理、等待条件 | 用于优化抓取的 Web Unblocker |
| 搜索数据 | 通过浏览器渲染的 SERP | Fast Search API |
你不需要为每项工作都同时使用两者。一个静态 HTML 的公开营销页面两者都不需要。当页面是动态的、受地理限制或受保护时,这种组合才值得付出成本。
先决条件
开始之前,请收集以下四项内容:
- 从仪表板获取的 AdsCrawl API 密钥。
- Oxylabs 代理凭据——用户名、密码以及你所购买代理类型的端点主机。
- 你有权采集的目标 URL。
- 运行时:用于冒烟测试的 cURL,然后用于实际工作的 Node.js 或 Python。
将凭据保存在服务器端。切勿将代理密码或 API 密钥发送到浏览器客户端。
第 1 步:验证你的 Oxylabs 代理可独立工作

Oxylabs Proxy & Web Scraping Platform product interface.
Oxylabs 代理及网页抓取平台产品界面。
在添加浏览器自动化之前先测试代理。如果代理配置错误,在浏览器会话内调试会浪费时间。
curl -x http://USERNAME:PASSWORD@PROXY_HOST:PORT \
-sS https://ip.oxylabs.io/location
你应该会看到出口 IP 及其位置。如果收到 407,说明凭据错误。如果超时,请检查端口以及你的 IP 是否在白名单中。
Oxylabs 同时支持用户名-密码认证和 IP 白名单。选择一种并保持一致——混用是导致令人困惑错误的常见原因。
第 2 步:通过代理发送你的第一个 AdsCrawl 请求
AdsCrawl 的 HTTP 端点接受自定义代理配置。重要细节:将凭据放在指定字段中,而不是放在代理服务器 URL 内。将凭据嵌入 URL 字符串是连接失败的常见原因。
curl --fail-with-body -sS \
-X POST "https://api.adscrawl.net/html" \
-H "x-api-key: $ADSCRAWL_API_KEY" \
-H "content-type: application/json" \
-d '{
"url": "https://example.com/product/123",
"contentMode": "html",
"waitUntil": "domcontentloaded",
"proxy": {
"server": "http://PROXY_HOST:PORT",
"username": "USERNAME",
"password": "PASSWORD"
}
}' \
--output page.html
当你需要为 LLM 管道提供可读文本而不是原始标记时,将 contentMode 切换为 markdown。当你需要文章内容的结构化版本时,使用 json。
第 3 步:提取特定字段而不是整个页面
整页 HTML 很重。如果你只需要价格、标题和库存情况,请定义字段并让 AdsCrawl 只返回这些内容。
curl --fail-with-body -sS \
-X POST "https://api.adscrawl.net/spa-extract" \
-H "x-api-key: $ADSCRAWL_API_KEY" \
-H "content-type: application/json" \
-d '{
"url": "https://example.com/product/123",
"mode": "extract",
"fields": [
{ "name": "price", "selector": ".price-value" },
{ "name": "title", "selector": "h1" }
],
"proxy": {
"server": "http://PROXY_HOST:PORT",
"username": "USERNAME",
"password": "PASSWORD"
}
}'
始终检查响应中的 missingFields。返回空值的字段通常意味着选择器已更改或页面尚未完成渲染——而不是网站封锁了你。
第 4 步:将 Cloud Browser 会话固定到某个区域
当你需要持久身份时——已登录流程、多步骤结账研究或将会话与地理位置绑定的网站——请使用 Cloud Browser 会话。每次启动请求都必须包含有效的代理,并且配置文件会被保存,以便你在下次运行时重用 cookie 和指纹状态。
跨境价格检查的实用模式:
- 启动一个 Cloud Browser 会话,使用针对你想观察国家的 Oxylabs 住宅代理。
- 导航到产品页面并等待价格选择器。
- 截取屏幕截图作为证据并提取价格字段。
- 显式停止会话——关闭实时查看器不会停止它,使用费用会继续产生。
最后一点对成本控制很重要。在继续之前,确认 runtime.status 为 stopped。
第 5 步:为每个目标选择合适的代理类型

Oxylabs Proxy & Web Scraping Platform product interface.
Oxylabs 代理及网页抓取平台产品界面。
并非每个网站都值得使用你最昂贵的 IP。将代理类型与防御级别匹配。
- 数据中心代理: 每个 IP 成本最低,适用于宽松的网站、内部暂存环境以及没有机器人防御的高流量页面。
- ISP 代理: 折中选择——具有数据中心速度,但使用 ISP 注册地址。适用于封锁明显数据中心范围的零售网站。
- 住宅代理: 受保护的电子商务、旅游和房地产网站的默认选择。当定价或库存因城市而异时,使用城市级定位。
- 移动代理: 保留给最难的目标,例如将移动运营商 IP 视为更可信的社交平台和应用。
如果切换到住宅代理后目标仍然封锁你,问题通常是行为层面的,而不是网络层面的。放慢速度、添加真实等待,或通过 Oxylabs Web Unblocker 路由请求,并将 AdsCrawl 用于需要真正浏览器交互的页面。
第 6 步:有意识地轮换,而不是随机轮换
轮换是大多数集成悄然失败的地方。两条规则覆盖大多数情况:
- 在工作之间轮换,而不是在工作内部轮换。 如果单个工作流跨越多个请求——加载页面、点击筛选器、读取结果——请在整个序列中保持一个 IP。会话中途切换是强烈的机器人信号。
- 有状态流程使用粘性会话。 使用粘性会话标识符,使同一个出口 IP 在逻辑工作单元中的多个请求间持续存在。
AdsCrawl 保存的浏览器配置文件与粘性代理搭配良好:指纹和网络身份保持一致。
第 7 步:处理 CAPTCHA 和等待
AdsCrawl 可以在同一浏览器会话内检测并处理受支持的挑战,例如 reCAPTCHA、Turnstile 和 AWS WAF,无需手动交接。两个实用提示:
- 在加载页面的同一会话中解决挑战。使用新 IP 的新会话通常会再次触发挑战。
- 在提取之前设置
waitUntil或等待特定选择器。许多“被封锁”的报告实际上是对仍在加载的页面过早读取。
完整的 Node.js 示例
const res = await fetch("https://api.adscrawl.net/html", {
method: "POST",
headers: {
"x-api-key": process.env.ADSCRAWL_API_KEY,
"content-type": "application/json"
},
body: JSON.stringify({
url: "https://example.com/product/123",
contentMode: "markdown",
waitUntil: "networkidle",
proxy: {
server: `http://${process.env.OXY_HOST}:${process.env.OXY_PORT}`,
username: process.env.OXY_USER,
password: process.env.OXY_PASS
}
})
});
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const markdown = await res.text();
将所有四个机密存储在环境变量中。如果它们出现在日志中,请轮换它们。
集成故障排除
| 症状 | 可能原因 | 修复方法 |
|---|---|---|
| HTTP 407 | 代理凭据错误或认证格式错误 | 将凭据从服务器 URL 移到用户名/密码字段 |
| HTTP 402 | AdsCrawl 信用余额耗尽 | 在仪表板中检查计划和余额 |
| HTTP 429 | 并发过高 | 降低并行作业数,使用退避重试 |
| 超时 | 页面缓慢、代理不可达或选择器从未出现 | 验证代理,然后调整等待条件 |
| 字段为空 | 选择器漂移或渲染不完整 | 重新检查选择器和 missingFields |
| 反复出现 CAPTCHA | 每个请求都使用新 IP | 切换到粘性会话并重用浏览器配置文件 |
何时使用 AdsCrawl、Oxylabs 或两者

Oxylabs Proxy & Web Scraping Platform product interface.
- 仅 AdsCrawl: 动态但不受保护的页面、截图证据、AI 代理浏览以及多步骤交互流程。
- 仅 Oxylabs: 在稳定目标上进行大批量结构化采集,不需要完整浏览器,以及通过 Fast Search API 获取搜索结果。
- 两者结合: 受地理限制的商务数据、跨区域广告验证、受保护零售网站上的价格监控,以及任何需要真实浏览器看起来来自特定地点的工作流。
如果你仍在选择浏览器自动化供应商,AdsCrawl 与 Kernel 对比和AdsCrawl 与 Browse AI 及 Puppeteer 对比分析涵盖了会话控制、提取格式和定价模型。如需更广泛的工具视角,请参阅 AdsCrawl 与 Parallel 及 Octoparse 对比。
相关阅读
- WebHarvy 2026 评测:无代码抓取器、定价与限制 - 实践中的 WebHarvy 评测:点击式抓取、一次性定价信号、AI 功能、设置、限制以及 2026 年谁应该购买它。
- 网站变更提醒:如何监控任何页面(2026) - 了解网站变更提醒如何工作,比较视觉、文本与 API 监控,并通过实际示例构建可靠的提醒工作流。
来源与进一步阅读
- Oxylabs 产品教程 - 欢迎来到 Oxylabs 产品教程,这是一个旨在帮助你充分利用 Oxylabs 强大的代理和网页抓取解决方案的播放列表。每个视频演练...
常见问题
使用 AdsCrawl 是否需要 Oxylabs 代理?
不需要。AdsCrawl 无需自定义代理即可工作,并为支持的工作流包含轮换住宅代理路由。当你需要特定地理位置、粘性会话或与受保护目标匹配的代理类型时,请携带你自己的 Oxylabs 凭据。
我可以使用 Oxylabs 数据中心代理代替住宅代理吗?
可以,对于宽松目标你应该这样做——数据中心代理的每个 IP 成本更低。当你看到封锁、CAPTCHA 或数据中心范围无法访问的区域特定内容时,切换到住宅或 ISP 代理。
如何定位到特定城市?
Oxylabs 通过其代理配置支持城市级定位。在代理凭据中设置位置参数,然后将相同的配置传递给 AdsCrawl,使浏览器会话和网络身份一致。
关闭 Cloud Browser 查看器会停止会话吗?
不会。关闭查看器会让会话继续运行,费用会继续产生。调用停止端点并确认 runtime.status 为 stopped。
调试失败请求的最快方法是什么?
先单独测试代理并进行位置检查,然后发送一个 waitUntil 设置保守的 AdsCrawl 请求。如果代理通过而浏览器请求失败,问题在于等待条件或选择器,而不是网络。
我可以在同一管道中使用 Oxylabs Web Unblocker 和 AdsCrawl 吗?
可以,而且这是一种合理的分工。将简单页面通过 Web Unblocker 进行优化抓取,并将 AdsCrawl 浏览器会话保留给需要点击、填写表单、截图或 CDP 控制的页面。
结论
AdsCrawl 和 Oxylabs 解决同一问题的不同部分。AdsCrawl 确保页面实际渲染并且你可以与之交互;Oxylabs 确保请求来自目标网站愿意提供服务的 IP。通过将凭据保存在指定字段中、将会话固定到某个区域、在工作之间而不是工作内部轮换,并显式停止 Cloud Browser 会话,将它们连接起来。这样做之后,你仍然会看到的失败将是选择器漂移和页面变化——这些你可以在配置文件中修复,而不是提交支持工单。
作为参考,请参阅 Oxylabs 集成库和 AdsCrawl API 文档。
