11 min

如何将 AdsCrawl 与 Oxylabs 代理配合使用(2026 指南)

将 AdsCrawl 浏览器自动化与 Oxylabs 代理连接:设置步骤、代码示例、轮换策略,以及解决地理封锁和 CAPTCHA 的方法。

AAnonymous

如何将 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 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 的公开营销页面两者都不需要。当页面是动态的、受地理限制或受保护时,这种组合才值得付出成本。

先决条件

开始之前,请收集以下四项内容:

  1. 从仪表板获取的 AdsCrawl API 密钥。
  2. Oxylabs 代理凭据——用户名、密码以及你所购买代理类型的端点主机。
  3. 你有权采集的目标 URL。
  4. 运行时:用于冒烟测试的 cURL,然后用于实际工作的 Node.js 或 Python。

将凭据保存在服务器端。切勿将代理密码或 API 密钥发送到浏览器客户端。

第 1 步:验证你的 Oxylabs 代理可独立工作

Oxylabs Proxy & Web Scraping Platform product interface

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 和指纹状态。

跨境价格检查的实用模式:

  1. 启动一个 Cloud Browser 会话,使用针对你想观察国家的 Oxylabs 住宅代理。
  2. 导航到产品页面并等待价格选择器。
  3. 截取屏幕截图作为证据并提取价格字段。
  4. 显式停止会话——关闭实时查看器不会停止它,使用费用会继续产生。

最后一点对成本控制很重要。在继续之前,确认 runtime.status 为 stopped。

第 5 步:为每个目标选择合适的代理类型

Oxylabs Proxy & Web Scraping Platform product interface

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

Oxylabs Proxy & Web Scraping Platform product interface.

  • 仅 AdsCrawl: 动态但不受保护的页面、截图证据、AI 代理浏览以及多步骤交互流程。
  • 仅 Oxylabs: 在稳定目标上进行大批量结构化采集,不需要完整浏览器,以及通过 Fast Search API 获取搜索结果。
  • 两者结合: 受地理限制的商务数据、跨区域广告验证、受保护零售网站上的价格监控,以及任何需要真实浏览器看起来来自特定地点的工作流。

如果你仍在选择浏览器自动化供应商,AdsCrawl 与 Kernel 对比和AdsCrawl 与 Browse AI 及 Puppeteer 对比分析涵盖了会话控制、提取格式和定价模型。如需更广泛的工具视角,请参阅 AdsCrawl 与 Parallel 及 Octoparse 对比。

相关阅读

来源与进一步阅读

  • 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 文档。