CYBERYOZH 应用程序大奖。

CYBERYOZH 应用程序大奖。

赢取 Apple MacBook、2000 美元、iPad 和大量其他奖品!

如何为 Puppeteer 设置移动代理

Puppeteer 是一个网页自动化框架,专为基于 Chromium 的浏览器设计,主要作为 JavaScript/Node.js 库运行。它最适合精确的低级自动化,在多账户管理和网络业务优化中发挥重要作用,这些场景需要定期快速执行多项操作。

ℹ️

Puppeteer 擅长细粒度的浏览器控制,使 Puppeteer 代理集成 成为大规模可靠自动化的基础。 

选择 Puppeteer 代理:CyberYozh 移动代理

由于 Puppeteer 最适合网页自动化, 移动代理 是 Puppeteer 的最佳选择。它们在所有代理类型中具有最高的信任评分,因此平台不会在自动化活动期间限制您的会话。

CyberYozh mobile proxies

对于 社交媒体管理多账户工作流以及任何执行严格行为分析的平台,移动代理可以复制真实的运营商级流量,系统会将其识别为真实用户。

📱

将移动代理与 云手机反检测浏览器 配对使用,可实现完整的指纹隔离,每个会话都会获得唯一的设备签名、网络身份和 IP 地址,消除跨账户关联。

其他选择:住宅代理和数据中心代理

虽然移动代理为大多数 Puppeteer 工作流提供了最佳解决方案,限制风险最小,但其他代理类型作为 Puppeteer 代理服务器也有各自的用途:

  • 轮换住宅代理 是大多数数据收集任务的标准选择,拥有覆盖 100 多个国家的大型 IP 池。在 Puppeteer 中,将它们用于需要按请求轮换 IP 的批量抓取任务。在用户名中配置 -res-any 后缀,让提供商自动处理 Puppeteer 代理轮换。

  • 静态住宅代理 为每个会话分配单个持久 IP,使其在具有中等 Puppeteer 自动化水平的账户关联工作流中可靠。当平台需要会话连续性时使用它们,例如登录仪表板或结账流程。

  • 数据中心代理 速度非常快,但平台往往会标记其非住宅流量模式。在 Puppeteer 中,仅将它们用于 API 测试、性能基准测试和暂存环境中的自动化 QA,这些环境的机器人检测很少。

ℹ️

在 CyberYozh 专题文章中比较 住宅代理和移动代理 。选择最适合您的代理。

准备使用 Puppeteer 代理

Puppeteer 启动一个无头浏览器实体,网络流量使用量最小,然后自动执行诸如打开和关闭页面、鼠标点击、键盘输入以及普通网页活动中执行的其他任务等过程。 

⚙️

无头浏览器 是一个 Chromium 实例,它处理网页并执行 JavaScript,而不渲染可见的 GUI,显著减少资源负载。默认情况下,Puppeteer 使用无头模式(headless: true)。传递 headless: false 以启动可见的浏览器会话进行调试。更多信息请参阅 Puppeteer API 文档

创建 CyberYozh 账户

注册 CyberYozh,导航至 我的代理,并根据您的任务购买代理类型:用于自动化和社交媒体工作流的移动代理,或用于抓取的轮换住宅代理。 

CyberYozh dashboard

打开您的代理卡片,点击 生成凭据,选择您的轮换模式(随机 IP、短会话或长会话),并保存主机、端口、用户名和密码。

在您的电脑上设置 Puppeteer

Puppeteer 需要 Node.js (v18+)和包管理器(例如 npmyarn)。初始化您的项目并安装该库:

bash
# Initialize Node.js project
npm init -y

# Install Puppeteer (includes bundled Chromium)
npm install puppeteer
bash
# Alternatively, with Yarn:
yarn add puppeteer

在您的 JavaScript 代码中使用 Puppeteer

Puppeteer 代理工作流存在两个包变体:

⚙️

puppeteer — 完整包,会自动下载并捆绑兼容的 Chromium 二进制文件。适用于大多数独立自动化脚本。

⚙️

puppeteer-core — 轻量级版本,不包含捆绑的浏览器。当您自行控制浏览器二进制文件路径时使用(例如特定的 Chrome 安装或云环境)。需要您明确指定 executablePath。

javascript
// puppeteer (full, with bundled Chromium):
const puppeteer = require('puppeteer');

// puppeteer-core (no bundled browser):
const puppeteer = require('puppeteer-core');
// Must also pass: executablePath: '/path/to/chrome' 

使用 CyberYozh 启动自动化工作流

现在,您可以继续进行 Puppeteer 项目。从项目结构开始,将代理 Puppeteer 凭据添加到环境中,然后将 Puppeteer 导入到您的 Node.js 脚本中。

⚙️

使用 --proxy-server 标志作为 Chromium 启动参数,它会将所有浏览器级别的网络流量路由到您指定的代理地址和端口。它在 puppeteer.launch()的 args 数组中传递。

创建您的项目结构

从一开始就组织好项目文件夹,将凭据、脚本、配置和输出分开:

  1. .env 文件用于存放代理凭据(添加到 .gitignore)

  2. .gitignore 用于指定不通过 Git 共享的内容,即代理凭据

  3. index.js 用于主 Puppeteer 脚本

  4. config/browser.js 用于浏览器启动选项,放在单独的文件夹中

  5. output/ 文件夹用于存放抓取的数据(JSON/CSV) 

在 .env 文件中分配代理 

将您的 CyberYozh 凭据添加为环境变量。切勿在源文件中硬编码凭据,以防止凭据泄露到版本控制系统。

plaintext
PROXY_HOST=your_proxy_ip
PROXY_PORT=your_proxy_port
PROXY_USER=your_username
PROXY_PASS=your_password

导入并配置 Puppeteer

安装 dotenv 以加载 .env 变量:

bash
npm install dotenv

然后配置您的 Puppeteer 代理服务器选项:

javascript
// index.js

require('dotenv').config();

const puppeteer = require('puppeteer'); // or puppeteer-core
const PROXY = `${process.env.PROXY_HOST}:${process.env.PROXY_PORT}`

创建 Puppeteer 浏览会话

使用 Puppeteer HTTP 代理 服务器参数定义浏览器实体,然后对页面进行身份验证。默认情况下,会话是无头模式:

javascript
(async () => {
  const browser = await puppeteer.launch({
    headless: true, // false for debugging
    args: [`--proxy-server=http://${PROXY}`]
  });

  const page = await browser.newPage();

  // Authenticate with CyberYozh credentials
  await page.authenticate({
    username: process.env.PROXY_USER,
    password: process.env.PROXY_PASS
  });

 // Access the target site and show its content
  await page.goto('https://httpbin.org/ip');
  const content = await page.content();
  console.log(content);

 // Perform the automation or scraping operations using JS commands as needed

 // Close the session
  await browser.close();
})(); 
💬

正如 关于 Puppeteer 代理使用的高票 Stack Overflow 讨论中所述, --proxy-server 标志必须在浏览器启动时传递:启动后无法按页面更改。

部署代码并监控进程

从项目根目录运行自动化脚本,并验证 IP 轮换是否正常工作:

bash
node index.js

对于跨多个会话的 Puppeteer 代理轮换,请维护一个代理池,并通过重新启动浏览器实例来重新分配代理。 

💡

使用 CyberYozh API 密钥配合 IP 检查器 来自动化轮换并在使用前检查每个传入 IP 的质量,从而最大限度地降低批量多账户操作期间受限的风险。 

📚 在 CyberYozh 上阅读更多内容

总结:高效使用 Puppeteer 代理

Puppeteer代理与CyberYozh移动代理的集成为网页自动化提供了最可靠的基础。它将Node.js浏览器控制与高信任度移动IP和API驱动的轮换相结合,能够大规模维持多账户和业务自动化工作流程,而不会触发平台限制。

关于Puppeteer代理的常见问题

什么是Puppeteer代理,为什么需要它?

Puppeteer代理通过外部IP地址路由您的无头浏览器流量,掩盖您的真实来源。它可以防止IP被封禁,实现地理定位,并使自动化会话看起来像真实用户活动。

如何在Puppeteer中使用代理?

--proxy-server=host:port 的args数组中传递 puppeteer.launch()标志,然后调用 page.authenticate({ username, password }) 用于私有代理服务器。基本设置不需要额外的库。

puppeteer和puppeteer-core有什么区别?

puppeteer 捆绑了兼容的Chromium二进制文件,npm install后即可使用。 puppeteer-core 是不包含浏览器的轻量级版本;您必须提供 executablePath 指向现有的Chrome或Chromium安装。

Puppeteer支持SOCKS5代理吗?

支持。在args数组中传递 --proxy-server=socks5://host:port 。SOCKS5代理支持完整的TCP级隧道,包括HTTP代理无法中继的非HTTP流量。

Puppeteer代理轮换如何工作?

使用CyberYozh轮换代理时,轮换功能内置于代理基础设施中:每个新连接或会话都使用新的IP。对于Puppeteer中的按浏览器轮换,为代理池中的每个代理使用 puppeteer.launch() 重新启动新的浏览器实例。

我可以在Puppeteer中为每个页面设置不同的代理吗?

在页面级别无法原生实现: --proxy-server 标志全局应用于浏览器进程。对于按会话代理,为每个代理启动单独的浏览器实例,或使用 puppeteer-page-proxy npm模块进行按页面拦截。

在Puppeteer中进行社交媒体自动化应该使用CyberYozh的哪种代理类型?

移动代理是正确的选择:它们复制真实的运营商级流量,在Instagram、TikTok和X等平台上具有最高的信任评分。与反检测浏览器配合使用可实现完整的指纹隔离。

如何防止Puppeteer中的IP泄露?

禁用WebRTC以防止其广播您的真实IP:传递 --disable-webrtc 或覆盖 RTCPeerConnection 通过 page.evaluateOnNewDocument()。同时确保 DNS 查询通过代理路由,而不是在本地解析。

如何验证代理在 Puppeteer 中是否正常工作?

在您的 Puppeteer 会话中访问 https://httpbin.org/iphttps://app.cyberyozh.com/checkers/ip-address/ 。返回的 IP 应与您的代理地址匹配。如果仍然显示您的原始 IP,请检查是否在 page.authenticate() 之前调用了 page.goto()

如果我的 Puppeteer 自动化仍然被阻止,我该怎么办?

使用 CyberYozh IP 检查器检查您的 IP 是否具有较低的欺诈评分,减慢请求间隔,并随机化用户代理字符串和视口大小。对于高安全性平台,将 CyberYozh 移动代理与反检测浏览器结合使用。

Puppeteer 是否支持 HTTP 和 HTTPS 代理?

是的。 --proxy-server 标志同时支持 http://https:// 协议,Puppeteer 将通过代理自动使用 CONNECT 隧道传输 HTTPS 流量。