自动化框架 集成

如何在 PUPPETEER 中使用 PROXY POLAND

使用专用 4G 手机代理进行无头 Chrome 自动化的 Node.js 代码示例。

概述

为何选择 PUPPETEER + PROXY POLAND

Puppeteer 是 Google 用于控制无头 Chrome 的官方 Node.js 库。结合 Proxy Poland 的专用 4G 手机代理,Puppeteer 成为绕过最积极反机器人系统的强大网络爬取、测试和自动化工具。

分步指南

设置说明

01

安装 Puppeteer

在您的 Node.js 项目中安装 Puppeteer:

npm install puppeteer
# or for minimal install:
npm install puppeteer-core
02

获取代理凭据

在 proxypoland.com 注册并从控制台获取您的代理 IP、端口、用户名和密码。

03

基本代理设置

使用 SOCKS5 代理启动 Puppeteer:

const puppeteer = require('puppeteer');

const browser = await puppeteer.launch({
  args: [
    '--proxy-server=socks5://proxy-ip:port',
    '--no-sandbox',
  ],
});

const page = await browser.newPage();

// Authenticate with proxy
await page.authenticate({
  username: 'your-username',
  password: 'your-password',
});

await page.goto('https://httpbin.org/ip');
const content = await page.content();
console.log(content);

await browser.close();
04

HTTP 代理替代方案

使用带认证的 HTTP 代理:

const browser = await puppeteer.launch({
  args: ['--proxy-server=http://proxy-ip:port'],
});

const page = await browser.newPage();
await page.authenticate({
  username: 'your-username',
  password: 'your-password',
});

await page.goto('https://example.com');
05

隐身模式 + 代理

使用 puppeteer-extra 进行隐身浏览:

const puppeteer = require('puppeteer-extra');
const StealthPlugin =
  require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());

const browser = await puppeteer.launch({
  args: ['--proxy-server=socks5://proxy-ip:port'],
  headless: 'new',
});

const page = await browser.newPage();
await page.authenticate({
  username: 'user', password: 'pass'
});

// Now scrape with stealth + mobile proxy
await page.goto('https://target-site.com');
06

页面之间的 IP 轮换

使用 Proxy Poland 的 API 轮换 IP:

const axios = require('axios');

async function rotateIP() {
  const response = await axios.get(
    'https://proxy-ip:port/rotate',
    { auth: { username: 'user', password: 'pass' } }
  );
  console.log('New IP:', response.data);
}

// Rotate between scraping sessions
await rotateIP();
await page.goto('https://next-target.com');
07

验证代理是否正常工作

快速测试以确认代理连接:

const page = await browser.newPage();
await page.authenticate({
  username: 'user', password: 'pass'
});
await page.goto('https://httpbin.org/ip');
const ip = await page.$eval(
  'pre', el => el.textContent
);
console.log('Proxy IP:', JSON.parse(ip).origin);
// Should show Polish mobile IP
专家建议

专业提示

对具有高级机器人检测的网站使用 puppeteer-extra-plugin-stealth

将视口设置为手机尺寸以进行手机特定爬取

实施请求拦截以阻止不必要的资源(图片、CSS)以加快爬取速度

操作后使用 page.waitForNavigation() 确保页面通过代理完全加载

对于高并发,使用不同代理启动多个浏览器实例

常见用例

适用于以下场景

网络爬取和数据提取使用真实 IP 进行自动化测试截图服务PDF 生成性能监控
常见问题

FAQ

Puppeteer 比 Selenium 更适合与代理一起使用吗?+

Puppeteer 的原生代理支持比 Selenium 更易于配置。它还有内置的 page.authenticate() 用于代理认证。对于 Node.js 项目,Puppeteer 通常是更好的选择。

我可以在无头模式下使用这些代理运行 Puppeteer 吗?+

可以。在启动选项中使用 headless: 'new'。代理在无头和有头模式下工作方式完全相同。对于隐身,添加 puppeteer-extra-plugin-stealth。

通过手机代理爬取时如何处理验证码?+

手机 IP 显著减少验证码频率。大多数网站向手机运营商 IP 提供更少的验证码。对于剩余的验证码,集成如 2Captcha 的解决服务或使用隐身插件。

我可以使用不同代理运行多个 Puppeteer 实例吗?+

可以。在 args 中为每个浏览器实例启动带有不同 Proxy Poland 代理的单独浏览器实例。这非常适合带 IP 隔离的并行爬取。

Playwright 也可以与这些代理一起工作吗?+

可以。Playwright 有内置代理支持:browser.launch({ proxy: { server: 'socks5://ip:端口', username: '用户', password: '密码' } })。相同的代理凭据适用于 Puppeteer 和 Playwright。

立即试用免费 1 小时

在 2 分钟内使用专用 4G 手机代理设置 Puppeteer。无需信用卡。试用期间完整代理访问。

无承诺 · 随时取消 · 2 分钟内设置