我们使用联盟链接。它们让我们能够维持运营,而您无需承担任何费用。

深入了解流行的代理 API(Web 解锁器)

本调查研究了五种流行的代理 API,例如 Bright Data的 Web Unlocker 和 Oxylabs' Web Unblocker。我们比较了它们的功能、定价模式以及解锁主要机器人保护系统(例如 DataDome 或 Shape)背后的网站的能力。

主要发现

  • 代理 API 使用主机名:端口格式进行集成,并且 消除管理代理服务器、运行无头浏览器或处理阻止的负担.
  • 所有五名参与者都能够成功打开受保护的网站,成功率超过 90%。Shape 的反机器人给他们带来了最大的麻烦,其次是以照片为中心的社交媒体平台。
  • 代理 API 允许在一定程度上修改请求,例如发送自定义标头。一些 API 提供结构化数据功能,并且代理供应商(例如 Bright Data 和 Oxylabs 支持精确的过滤选项。它们的主要缺点是与动态页面的交互有限。
  • 按请求付费比按流量付费更有意义,除非您正在抓取小页面或 API 端点。Zyte 的动态定价对于不需要 JavaScript 渲染的页面非常有效。

代理 API 入门

随着网站越来越难以抓取,代理提供商已经开发出 一种称为代理 API 的新服务。它像常规代理服务器一样集成。但在后端,API 结合了多种 IP 类型、智能代理管理层和网站解锁机制。如果请求失败(遇到阻止或 CAPTCHA), API 调整其配置并再次尝试,直到成功. 一些工具甚至具有智能错误处理功能,可以识别不明显的故障,例如空的 200 响应。
明亮的解锁者
来源:brightdata.com

因此,除了购买大量 IP 之外, 你将获得一个可以处理 CAPTCHA、机器人保护系统,甚至还可以自行渲染 JavaScript 的工具。这将网络抓取的复杂猫捉老鼠游戏简化为发送请求和接收页面的 HTML。大多数供应商承诺近乎完美的成功率——即使是像 cURL 命令这样简单的命令。  

也就是说, 你不应该将代理 API 仅仅视为 CAPTCHA 求解器。虽然它们确实消除了路灯标记和按住按钮的需要,但这通常是通过避免挑战而不是强行通过它来实现的。已配置 CAPTCHA 每次都会弹出的页面可能仍需要您的注意。 

如何使用代理 API?该过程与任何其他旋转代理服务器几乎没有什么不同: 有一个带有身份验证详细信息的主机名和端口。然后,您可以将各种参数(例如位置偏好)附加到凭据或将其作为自定义标头发送。代理 API 会拦截请求并根据您的配置获取页面。

oxylabs 解锁器集成
来源:oxylabs.io

在我们以前 网络抓取 API 研究,我们注意到有些人有能力作为代理进行整合。但最近 代理 API 它们在许多情况下都能提供类似的结果。  新兴经济体的新市场。 作为单独的类别 – 无论是出于营销目的还是基于真正的技术考虑。你经常会发现它们被称为 解锁器 or 智能代理管理器.

参与者和方法

我们联系了多家公司并提出了参与该研究的提案。 五家供应商同意为了保证透明度,我们提前披露了要测试的网站,以便能够做好相应的准备。 

以下是参与者:

  • Bright Data – 数据收集领域最大的公司之一。我们测试了它的 网页解锁器,和...一起 搜索结果应用程序接口 适用于 Google。虽然这是两个独立的工具, Bright Data 拥有统一的系统,让客户无需新订阅即可使用任何产品。 Bright Data已经提供 Web Unlocker 至少好几年了,它是该公司 2022 年的主要增长动力。 
  • Crawlbase – 一家知名的网页抓取工具提供商,拥有超过 45,000 名付费客户。我们测试了 抓取 API – 主要是一个带有代理模式的 Web 抓取 API。我们选择它而不是 Crawlbase 指定的代理 API Smart Proxy,因为 Crawling API 允许按使用量付费,并且不会将功能锁定在定价层级后面。除此之外,两者之间几乎没有什么区别 – 它们甚至共享相同的参数。 
  • Oxylabs – Bright Data代理服务器市场的主要竞争对手,拥有出色的基础设施。我们尝试过 网页解锁器 - 一个并不完全是新的代理 API,但它看起来很新,因为它在 2023 年初从 Next-Gen Residential Proxies 重新命名。 
  • Smartproxy – 另一家希望进军网络抓取工具领域的大型代理提供商。我们测试了 网站解锁器 – 2023 年 XNUMX 月推出了最新的代理 API。 
  • Zyte API – 一家专注于电子商务的长期数据收集公司,维护着 Scrapy 等多种流行的开源工具。我们想使用 Smart Proxy Manager,它是最古老的代理 API 之一。但事实证明 Zyte 正在淘汰该工具。所以我们最终测试了 Zyte 的 API 在无意的诱饵转换之后。作为一线希望,Zyte 计划很快向 Zyte API 添加代理模式。 

测试方法

我们用了一个 自定义异步 Python 脚本 发送请求。我们对目标网站的美国版本进行了多次测试,每秒发出 1 个请求。我们的计算机位于德国。我们大约 使用一个代理 API 对每个目标发出 1,800 个请求。为了验证请求是否成功,我们查看了其响应代码、大小和页面标题。一些 API 除了网站响应外还返回了自己的状态代码;我们没有使用它们。

解锁热门网站和反机器人系统

我们想看看这些 API 在其主要工作(解锁具有挑战性的网站)上表现如何。我们选择了受各种反机器人系统保护的七个目标:

  反机器人 需要渲染吗?
Amazon 内部 CAPTCHA,返回空的 200 编码响应
Google 验证码
以照片为中心的社交媒体网络 内部保护,触发时要求登录 ✅(我们访问的是 Web 界面,而不是 GraphQL 端点)
KOHLS Akamai的
诺思通 F5/形状
PETCO DataDome,Cloudflare
沃尔玛 Akamai、FingerprintJS、PerimeterX、ThreatMetrix

哪一个目标最难解除?

那会是 Shape 背后的公司 Nordstrom。此外,它返回结果所需的时间最长,尽管 Kohls 也需要 JavaScript,其页面大小为 3 MB,是后者的五倍。社交媒体网络对某些人来说也是另一个难题,它将 API 重定向到其登录页面。

平均成功率 平均响应时间 
KOHLS 99.01% 28.97小号
Amazon 98.65% 5.73小号
沃尔玛 96.38% 12.68小号
Google 96.00% 5.41小号
PETCO 95.48% 11.20小号
以照片为中心的社交媒体网络 92.19% 19.74小号
诺思通 80.16% 33.1小号

API 表现如何?

所有参与者十次中至少有九次都成功了,所以答案是——相当不错:

  • Zte 表现尤为强劲,无论是成功率还是响应时间。然而,该提供商确实必须在我们的测试中修复其社交媒体抓取工具才能获得如此出色的表现。
  • Bright Data 对于需要 JavaScript 的目标来说,速度非常快,但它在与 Petco 的合作下也慢得像爬行一样,而其他公司却没有遇到任何问题。
  • Oxylabs 和 Smartproxy 优先成功率 如果不是 Nordstrom,他们本应在测试中取得优异成绩。然而,他们的无头系统实施速度是最慢的。
  • Crawlbase 相对较快,但全面失败的请求较多,即使目标不是谷歌这样的问题。
 
Oxylabs Bright Data Smartproxy 合特 爬虫库
平均成功率 93.37% 94.65% 93.79% 97.82% 90.00%

将鼠标悬停在标签上即可突出显示,单击即可隐藏。

Oxylabs Bright Data Smartproxy 合特 爬虫库
平均响应时间 20.43小号 15.05小号 20.05小号 11.70小号 16.21小号

将鼠标悬停在标签上即可突出显示,单击即可隐藏。

按个体目标细分

亚马逊是最大的网络抓取目标之一。然而,它 解除封锁并不难 – 公司仍然能够使用数据中心地址大规模抓取平台数据。从结果来看,除了 Zyte 之外,其他公司的成功率都接近完美。

平均成功率 平均响应时间
爬虫库 100% 11.05小号
Bright Data 99.54% 5.59小号
Oxylabs 99.17% 4.14小号
Smartproxy 99.08% 3.99小号
合特 95.64% 3.90小号

Google 是另一个主要目标,它启发了一系列称为 SERP API 的网络爬虫。虽然它更依赖于 IP 质量,但它的保护也 绕过并不困难。只有 Crawlbase 出现了一些以 520 错误代码表现的问题。

平均成功率 平均响应时间
合特 100% 2.16小号
Bright Data 100% 4.63小号
Smartproxy 99.94% 6.91小号
Oxylabs 99.91% 6.66小号
爬虫库 78.61% 6.71小号

有两种方式可以访问以照片为中心的社交媒体平台: 通过隐藏的 API 端点或前端。前者实际上是首选,因为它不需要 JavaScript 渲染。但我们想完全加载网站。

这个社交媒体平台 最难攻克的难题之一. Bright Data 速度非常快,但 15% 的请求被重定向到登录。 Oxylabs 和 Smartproxy 页面加载几乎完美,但速度却有所降低。Crawlbase 的表现都不是很好,而 Zyte 则表现优异。

平均成功率 平均响应时间
合特 99.61% 19.78小号
Smartproxy 99.79% 27.92小号
Oxylabs 99.72% 28.39小号
Bright Data 85.84% 5.16小号
爬虫库 76.01% 17.45小号

Kohls 依赖 JavaScript 进行加载,这反映在响应时间上。除此之外, Akamai 未能对任何代理 API 提出挑战. Bright Data的 Web Unlocker 使用了一些巫术(或缓存)来超越所有竞争对手五到八倍。

平均成功率 平均响应时间
Bright Data 99.78% 4.98小号
Smartproxy 99.11% 41.89小号
合特 99.10% 29.44小号
爬虫库 98.38% 25.44小号
Oxylabs 98.66% 43.08小号

Nordstrom 受到 Shape 保护  需要 JavaScript – 这是一个可怕的组合,因为 Shape 是最难攻克的反机器人系统之一. Crawlbase 只允许我们运行一个请求 每分钟,使得抓取过程比我们预期的更加冗长。

Oxylabs 和 Smartproxy 发现 Nordstrom 尤其具有挑战性;我们看到大量 520 代码和内部错误,表明重试次数过多。总体而言,Zyte 在这两个性能指标中都表现最佳。

平均成功率 平均响应时间
合特 99.38% 20.42小号
爬虫库 89.16% 40.58小号
Bright Data 88.98% 39.97小号
Smartproxy 62.07% 31.34小号
Oxylabs 61.20% 33.19小号

DataDome 是一个出乎意料地容易克服的障碍。 再加上 Petco 不需要 JavaScript,你可以快速高效地抓取数据。至少 Smartproxy 和 Oxylabs。 因为某些原因, Bright Data 很挣扎,尤其是看响应时间。也许它必须启动无头实例才能解锁网站?

平均成功率 平均响应时间
Smartproxy 99.88% 2.79小号
Oxylabs 99.56% 2.91小号
合特 94.68% 3.49小号
爬虫库 91.75% 5.96小号
Bright Data 91.55% 40.82小号

沃尔玛实际上使用  不同的反机器人系统,这太疯狂了。该公司显然不想被爬取。话虽如此,即使是这些极端措施 无法停止代理 API。有些工具需要花费一些时间来检索响应,而其他工具(如 Zyte)则非常快。但总体而言,所有工具的成功率均超过 95%。

平均成功率 平均响应时间
Bright Data 96.83% 4.23小号
Smartproxy 96.64% 25.50小号
合特 96.53% 2.69小号
爬虫库 96.50% 6.31小号
Oxylabs 95.38% 24.66小号

代理 API 的功能和限制

代理 API 是 旨在替代代理服务器。因此,它们的主要预期功能是位置定位和建立会话的能力。 

正如我们在下面看到的,所有参与者都支持这一点。 Oxylabs, Smartproxy和 Bright Data 是最重要的代理服务器提供商,因此他们能够提供达到坐标和 ISP 级别的细粒度位置设置。

Oxylabs Bright Data Smartproxy 合特 爬虫库
本地化 国家(全部)、州、城市、坐标 国家/地区(全部)、州、城市、ASN 国家(全部)、州、城市、坐标 国家 (50) 国家 (26)
会议
代理选择 自动化 自动化 自动化 自动化 自动化,可选择通过 TOR 进行路由

但是代理 API 不仅仅是常规代理。 他们调解与目标的所有沟通,这意味着您不可避免地会放弃一定程度的控制权。让我们看看您如何与 API 交互以及它们无法触及哪些内容。我们暂时不讨论 Zyte,因为目前尚不清楚哪些功能将延续到代理格式。

Oxylabs Bright Data  Smartproxy  爬虫库
JavaScript  ✅(选项渲染 JS,返回页面截图) ✅(自动处理) ✅(选项渲染 JS,返回页面截图) ✅(不同的 API 令牌,返回页面截图的选项)
请求修饰符 自定义标头、cookie 搜索引擎的自定义参数 自定义标头、cookie 自定义标头、cookie
页面交互  POST请求 POST请求 POST 请求,等待加载,滚动
其他 异步请求、搜索引擎解析器 适用于特定网站的 CSS 选择器和解析器

Bright Data的实现是最纯粹的 – 除了异步 API 端点(不再是代理!)之外,它不会公开任何超出预期代理功能的内容。该工具甚至可以自行决定何时呈现 JavaScript,这使得它非常易于使用。 

Bright Data的专用 SERP API 则不同——它提供用于构建请求的自定义参数,例如搜索查询、分页和位置。它还可以解析 Google 和其他搜索引擎的各种属性以获取结构化数据。其中大部分是通过将参数附加到 URL 来实现的。 

除了搜索引擎, 代理 API Oxylabs 和 Smartproxy 更通用:它们接受自定义 cookie 和请求标头。还有一个选项是发送带有表单或其他数据的 POST 请求。此外,您还可以选择接收屏幕截图而不是 HTML 源代码。 

Crawlbase 的智能代理从提供商的其他 API 继承参数。因此,除了实现上述所有功能外,您还可以通过等待页面加载或向下滚动来与页面进行交互。例如 Bright Data,Crawlbase 为多个搜索引擎、社交媒体和电子商务网站提供解析器,并可以选择从任何网站提取特定的 CSS 元素。

代理 API 的主要限制

代理 API 的主要缺点在于其 依赖 JavaScript 的内容缺乏灵活性。大多数都可以呈现 JavaScript(这很棒),但它们不会公开与页面交互所需的参数。因此,您可能无法正确抓取一些需要额外时间加载或依赖滚动事件来显示所有内容的网站。 

您可能认为只需将代理 API 插入 Puppeteer 或其他无头库即可解决这个问题。但除了少数例外,这些 API 在设计上是不兼容的。

了解不同的定价模型

虽然一些提供商将代理 API 归类为代理服务器(而不是网络爬虫),但这并不意味着它们遵循相同的约定。让我们看看下表:

Oxylabs Bright Data  Smartproxy 爬虫库 合特
格式 流量 成功的请求 流量 成功的请求 成功的请求
修饰符 优质域名、城市和 ASN 定位 JS渲染 根据目标难度动态调整,JS渲染
最大价格差异 x1 x2 + $4/每千次展示费用 x1 x2 x30 +

有几点需要注意。首先, 没有统一的定价格式。三家提供商都对成功的请求收费,这是网页抓取工具的标准。 Oxylabs 和 Smartproxy另一方面,尝试继续使用代理范式,其中住宅和移动代理网络通常监控流量使用情况。 

要考虑的第二个方面是价格调整。 最常见的乘数是 JavaScript 渲染,因为完整的浏览器在计算上比 HTTP 库要繁重得多。一旦启用它,Crawlbase 的速率就会翻倍,而 Zyte 的成本则会高出一个数量级。 

Zyte 的定价总体来说很有趣。提供商会根据网站的难度和可选参数动态调整请求成本。这意味着即使访问同一个网站,您的费率也可能随着时间的推移而变得更高或更低。仪表板上有一个计算器,您可以在其中查看请求的费用。

Bright Data 还根据目标细分定价,但这里的方法更简单 - 您可以启用 Zillow 或 Nordstrom 等高级域名列表,每 4 个请求需额外支付 1,000 美元。

哪种方法更有意义?

这取决于提供商的费率。但考虑到代理 API 应该是住宅代理的附加产品,因此它们 按流量计费往往相当昂贵。在这种情况下,我们偏向于基于请求的定价,特别是当网站的页面较大时。

在五位参与者中, 事实证明,在不需要 JavaScript 的情况下,Zyte 的动态定价是最便宜的。否则,其他基于请求的提供商会给它带来激烈的竞争。基于流量的工具成本效率较低,但我们可以看到它们在处理小页面或抓取 API 端点时大放异彩。

 
Chris Becker 的照片
克里斯·贝克尔
代理审阅者和测试者。