你是否在寻找适用于 Puppeteer 的最佳代理?那么你来对地方了,因为我们将在这里介绍一些适用于 Puppeteer 的最佳代理,以及如何将它们集成到你使用 Puppeteer 创建的机器人中。
Puppeteer 代理概览
- Bright Data:池中拥有超过7200万个IP —— <起价$8.4/GB> —— Puppeteer 的最佳代理
- Soax:池中拥有超过850万个IP —— <起价$99/15GB> —— 干净代理池的替代选择
- Smartproxy:池中拥有超过5500万个IP —— <起价$7/GB | $15/GB> —— 速度最佳
- Shifter:池中拥有超过3100万个IP —— <起价$249/10个端口 | $25/端口> —— 最佳无限带宽代理
代理在可用于的工具方面极其多样化。它们灵活且支持许多现成的客户端应用程序。有趣的是,大多数供程序员开发自定义客户端应用程序的库在支持互联网连接时也支持代理。本文的重点是 Puppeteer 库,这在需要自动化浏览器任务的 Node.JS 开发者中相当受欢迎。
这个工具默认支持使用代理,就像其他类似的工具一样。然而,它并不提供代理——你需要自己添加代理。在 Puppeteer 的代理方面,你有很多选择。这是因为该工具
本身并不限制你使用特定的代理。你可以使用移动代理、住宅代理,甚至数据中心代理,它们都可以与该工具集成。
然而,代理的选择取决于你的任务和目标网站。因此,我们将推荐一些你在使用 Puppeteer 执行大多数任务时可以使用的代理。在详细介绍这些之前,我们先来看看 Puppeteer 是什么以及为什么需要为其使用代理。
什么是Puppeteer?
Puppeteer 是一个 Node 库,它提供了通过 DevTools 协议控制 Chrome 或 Chromium 的高级 API。如果你觉得这个定义很复杂,那么 Puppeteer 就是一个用于自动化 Chrome 浏览器的库。
该工具默认以无头模式运行,这意味着你可以使用 Puppeteer 和 Node.JS 自动化 Chrome,而无需显示 Chrome UI。但是,它确实支持非无头模式,在大多数情况下,在你开发用于调试的脚本时,这是必需的。
Puppeteer 库是另一种选择,但它更专业,只专注于 Node.js 和 Chrome。你能用 Puppeteer 做什么?好吧,如果你读了上面的内容,你就会发现这个库是用于自动化 Chrome 的——如何使用这种能力取决于你。
基本上,你可以使用 Puppeteer 在浏览器中手动完成大多数操作。你可以使用此工具执行的一些操作包括网页抓取和爬取常规网站以及高度 Ajax 化的网站(例如单页应用程序 (SPA))。
你可以使用它来生成页面的屏幕截图和 PDF、测试 Chrome 扩展程序和网站 UI、自动提交表单以及执行其他重复性任务。你甚至可以使用它来开发具有所有所需功能的功能齐全的机器人。除了主要的 Puppeteer 库之外,还有轻量级版本的 puppeteer-core,默认情况下不会下载任何浏览器。
为什么要为 Puppeteer 使用代理?
你可能有兴趣知道,使用 Puppeteer 不需要代理。你可以使用没有代理的 Puppeteer 来开发你的机器人并使其工作 – 直到它被阻止 – 如果你向目标网站发送了太多请求。那么为什么你需要为 Puppeteer 使用代理呢?
使用机器人时隐藏 IP 足迹
机器人很容易被识别,因为它们在短时间内发送了太多请求,而人类无法复制这些请求。我使用机器人这个词是因为大多数开发人员使用 Puppeteer 开发机器人。
如果不使用代理,所有请求都会有相同的 IP 地址,因此会显示 IP 被机器人控制,因此会阻止该 IP,因为大多数 Web 服务不喜欢机器人访问或流量。使用轮换代理,你的 IP 会频繁更改,从而使 Web 服务难以使用 IP 跟踪来识别和阻止你的机器人。
让你的机器人能够访问地理定位内容
Puppeteer 只是一个用于自动化 Chrome 的库,无法帮助你访问地理定位内容。你无需使用代理即可访问的 Web 内容是针对所有 Web 用户和你所在位置的 Web 用户的内容。如果你有兴趣访问针对其他位置用户的数据,例如从SERP 中抓取其他位置的关键字,那么这就是代理的职责。
重要的是,你要知道,为此,你必须使用 IP 来自你想要访问内容的位置的代理。这是因为 Web 服务使用 IP 地址来确定用户的位置。
Puppeteer 的最佳代理
Puppeteer 的最佳代理是住宅代理。这是因为它们不可检测,并且大多数住宅代理网络提供轮换代理端口,从而可以自动轮换 IP 地址,以避免超出导致阻止的请求限制。
同样重要的是,许多住宅代理网络支持多个位置和良好的位置定位功能,这使得它们非常适合访问本地化内容。以下是一些住宅代理提供商,你可以购买住宅代理以与你的 Puppeteer 应用程序一起使用。
Bright Data
- IP池大小:超过7200万
- 地点:世界所有国家
- 允许并发数:无限制
- 允许带宽: 1GB 起
- 费用: 每GB 8.4美元起
Bright Data 可以说是市场上最好的住宅代理网络。其住宅代理非常适合与 Puppeteer 一起使用。使用此提供商的代理,网络抓取变得容易。这是因为代理不可检测,并且非常适合网络抓取和其他形式的机器人程序。Bright Data(前身为 Luminati)提供的代理池是市场上最大的,其中有超过 7200 万个 IP 地址。
在位置支持方面,该服务也是最好的,它拥有来自世界各个国家和地区的代理,可以访问地理定位内容。该服务还具有粘性代理,是市场上最好的会话管理支持之一。它的定价基于带宽,最小的计划从每GB 8.4 美元起步。
Bright Data 限时翻倍优惠!
新用户首次充值 500 美元,额外赠送 500 美元。
SOAX
- IP池大小:超过850万
- 地点:全球 180 多个国家
- 允许并发数:无限制
- 允许带宽: 15GB 起
- 费用: 15GB每月99美元起
Soax 是一种代理服务,提供可用作 Puppeteer 代理的住宅代理。尽管 Soax 是名单上最新的提供商,但它已被证明是一股不容小觑的力量。该服务最近才在市场上首次亮相,但它已经能够发展成为最好的服务之一。
它的代理池拥有超过 850 万个 IP 地址,是最干净的代理池之一,因为它会定期检查池以删除不良 IP。在位置支持方面,你可以从此提供商处获得来自 180 多个国家的代理。你会喜欢 Soax 的一件事是它的价格实惠,虽然需要从15GB开始订购,但平均每GB只需6.6美元,在高级代理商中价格算便宜的了。
Smartproxy
- IP池规模:超过5500万
- 地点:全球 195 个地点
- 允许并发数:无限制
- 允许带宽: 1GB 起
- 费用: 每GB7美元起
Smartproxy 是一家优质代理提供商,可满足小型和大型营销人员的需求。我喜欢 Smartproxy 的功能是它的速度,它是住宅代理市场上最快的速度之一。Smartproxy 拥有最大的代理池之一,其池中有超过 5500 万个 IP 地址,来自全球 195 多个地点。
Smartproxy 住宅代理不仅速度快,而且非常可靠、稳定,并且兼容互联网上所有热门网站。这些代理是轮换代理,但它们支持粘性 IP,使其成为 Puppeteer 的完美代理提供商。
Shifter
- IP池大小:超过3100万
- 地点: 130 个国家
- 允许并发数:无限制
- 费用: 10 个端口起价每月 249.99 美元
Shifter 反向连接住宅代理是 Puppeteer 的最佳选择之一。如果你需要的代理是 socks 代理,那么我们建议你使用 Shifter 作为此类代理的首选提供商——它还提供与 socks 代理结合的 HTTP(S) 代理。另一个让你想使用 Shifter 的功能是它的代理支持无限带宽。与上面的其他代理一样,Shifter 的 IP 轮换是自动的。
但是,与其他产品不同的是,IP 轮换是基于时间的,每 5 分钟进行一次。Shifter 拥有的代理池相当大,其中有超过 3100 万个 IP。它支持超过 100 个地点,而且价格可以说是适中的。
如何为 Puppeteer 设置代理
了解 Puppeteer 最适合使用的代理是一回事,了解如何设置代理则是另一回事,尤其是因为某些代理仅支持用户名和密码验证。
在本文的此部分中,我们将向你展示如何设置 Puppeteer 驱动的应用程序以使用代理。
- 第一个很明显——你的电脑上应该安装了 Node.JS。如果没有,你应该访问Node.JS 的下载页面进行安装。
- 你还需要安装 Puppeteer 应用程序。要安装 Puppeteer(如果你尚未安装),请阅读本指南以了解如何完成安装。
- 转到你购买代理的代理提供商的用户仪表板,并记下代理地址、端口、用户名和密码。
- 我们将使用 Puppeteer 应用程序打开whatismyipaddress.com,这是一个在你访问时会显示你的 IP 地址的网站。我建议你现在访问该网站而不设置代理,并记下你的 IP 地址,以便你可以将其与脚本中配置代理时的 IP 地址进行比较。
- 创建一个新的 Node.JS 应用程序并在脚本中输入以下代码。
const puppeteer = require('puppeteer');
async function run() {
const browser = await puppeteer.launch({
headless: false,
args: [ '--proxy-server=200.73.128.156:3128' ]
});
const page = await browser.newPage();
constpageUrl = 'https://whatismyipaddress.com/';
awaitpage.goto(pageUrl);
awaitpage.setExtraHTTPHeaders({
'Proxy-Authorization': 'Basic ' + Buffer.from('user:pass').toString('base64'),
}
run();
- 确保将代理服务器和端口替换为你之前记下的代理地址和端口。在上面倒数第二行中,你还应该将user:pass替换为你记下的用户名和密码。
- 启动脚本,你将看到 Chrome 启动并打开 IP 查找网站,显示你正在使用的代理服务器的 IP 地址,而不是你的真实 IP 地址。
结 论
虽然大多数你在网上看到的Puppeteer教程并没有提到代理,好像代理并不是必需的。但实际情况是,许多需要使用Puppeteer的任务都需要代理,特别是当你需要访问不属于你的网络服务时——而这些服务确实有用于检测和阻止机器人的反垃圾邮件系统。
虽然Puppeteer并不强制要求你使用特定提供商的代理,但以上是一些可以为Puppeteer购买代理的最佳提供商,以及如何将这些代理与Puppeteer集成的方法。

