深入了解流行的代理 API(Web 解锁器)
本调查研究了五种流行的代理 API,例如 Bright Data的 Web Unlocker 和 Oxylabs' Web Unblocker。我们比较了它们的功能、定价模式以及解锁主要机器人保护系统(例如 DataDome 或 Shape)背后的网站的能力。
主要发现
- 代理 API 使用主机名:端口格式进行集成,并且 消除管理代理服务器、运行无头浏览器或处理阻止的负担.
- 所有五名参与者都能够成功打开受保护的网站,成功率超过 90%。Shape 的反机器人给他们带来了最大的麻烦,其次是以照片为中心的社交媒体平台。
- 代理 API 允许在一定程度上修改请求,例如发送自定义标头。一些 API 提供结构化数据功能,并且代理供应商(例如 Bright Data 和 Oxylabs 支持精确的过滤选项。它们的主要缺点是与动态页面的交互有限。
- 按请求付费比按流量付费更有意义,除非您正在抓取小页面或 API 端点。Zyte 的动态定价对于不需要 JavaScript 渲染的页面非常有效。
代理 API 入门
因此,除了购买大量 IP 之外, 你将获得一个可以处理 CAPTCHA、机器人保护系统,甚至还可以自行渲染 JavaScript 的工具。这将网络抓取的复杂猫捉老鼠游戏简化为发送请求和接收页面的 HTML。大多数供应商承诺近乎完美的成功率——即使是像 cURL 命令这样简单的命令。
也就是说, 你不应该将代理 API 仅仅视为 CAPTCHA 求解器。虽然它们确实消除了路灯标记和按住按钮的需要,但这通常是通过避免挑战而不是强行通过它来实现的。已配置 CAPTCHA 每次都会弹出的页面可能仍需要您的注意。
如何使用代理 API?该过程与任何其他旋转代理服务器几乎没有什么不同: 有一个带有身份验证详细信息的主机名和端口。然后,您可以将各种参数(例如位置偏好)附加到凭据或将其作为自定义标头发送。代理 API 会拦截请求并根据您的配置获取页面。
在我们以前 网络抓取 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 添加代理模式。
测试方法
解锁热门网站和反机器人系统
我们想看看这些 API 在其主要工作(解锁具有挑战性的网站)上表现如何。我们选择了受各种反机器人系统保护的七个目标:
| 反机器人 | 需要渲染吗? | |
|---|---|---|
| Amazon | 内部 CAPTCHA,返回空的 200 编码响应 | ❌ |
| 验证码 | ❌ | |
| 以照片为中心的社交媒体网络 | 内部保护,触发时要求登录 | ✅(我们访问的是 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小号 |
| 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 端点时大放异彩。