avatar

麦兜的小站

MDO.INK

  • 首页
  • 随笔
  • 知识库
  • 归档
  • 动态
  • 标签
  • 关于
Home 如何在 Puppeteer 中使用代理
文章

如何在 Puppeteer 中使用代理

Posted 2025-06-20 Updated 2025-06- 20
By power 已删除用户
11~15 min read

揭开在 Puppeteer 中使用代理之谜的终极指南。

您是否正在寻找一种安全、私密的网络浏览方式?那么,你来对地方了! 

有了功能强大的节点库 Puppeteer,你就可以使用代理服务器匿名上网,保护自己的身份。 

在本文中,我们将向你展示如何在 Puppeteer 中准确使用代理,请继续阅读了解详情!

什么是代理? 

代理是一种计算机或软件程序,充当用户计算机与互联网之间的中介。它通过将网络请求从用户电脑路由到互联网,让用户访问其网络可能封锁或限制的网站。它还可以用来隐藏用户的 IP 地址,提供一定程度的匿名性。

什么是 Puppeteer?

Puppeteer 是一个 Node 库,它提供了一个高级 API,用于通过 DevTools 协议控制无头 Chrome 或 Chromium。它还可以配置为使用完整(非无头版)Chrome 浏览器或 Chromium 浏览器。有了 Puppeteer,你可以通过自己的代码以编程方式启动和控制 Chrome 浏览器。你还可以用它来自动执行各种任务,如生成网页截图和 PDF、捕获性能数据、运行单元测试等。

为什么在 Puppeteer 中使用代理?

Puppeteer 使用代理服务器隐藏用户的 IP 地址,允许用户匿名浏览网络。这对网络搜刮等任务非常有用,因为它允许用户绕过网站上任何基于 IP 的限制。此外,代理还能保护用户免受坏人追踪其网上活动。

在 Puppeteer 中设置代理

选择代理类型 

在 Puppeteer 中设置代理时,第一步是选择要使用的代理类型。根据代理的目的,用户可以从 HTTP、SOCKS5 和 VPN 等不同选项中进行选择。每种代理类型都有不同的优势,可能更适合某些任务。 

获取代理 

在 Puppeteer 中设置代理的第一步是获取代理。许多选择包括免费和付费服务,如 IPBurger、Proxyrack 等。注册前请务必阅读每项服务的条款和条件。

配置代理

获得代理后,必须配置 Puppeteer 以使用它。为此,你需要在 Puppeteer 脚本的 launch() 方法中添加以下代码:

const proxy = 'http://<PROXY_IP_ADDRESS>:<PROXY_PORT>';

const browser = await puppeteer.launch({

&nbsp;&nbsp;args: ['--proxy-server=${proxy}'] ,

});

一旦添加了这段代码,Puppeteer 就会开始使用代理来处理它发出的所有请求。现在你可以开始使用 Puppeteer 的新代理了。

在 Puppeteer 中实施代理 

要在 Puppeteer 中设置代理,需要向 Puppeteer 类的 launch() 方法传递一个 ProxySettings 类型的对象。该对象应包含以下属性:

• Host: the hostname or IP address of the proxy server

- 端口:代理服务器的端口

- 用户名:用于身份验证的用户名(可选)

- 密码:验证密码(可选)

例如

const puppeteer = require('puppeteer');

(async () => {

&nbsp;&nbsp;&nbsp;&nbsp;const browser = await puppeteer.launch({

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;proxy: {

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;host: '127.0.0.1',

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;port: '8080',

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username: 'username',

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;password: 'password'

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;});

&nbsp;&nbsp;&nbsp;&nbsp;const page = await browser.newPage();

&nbsp;&nbsp;&nbsp;&nbsp;await page.goto('https://www.example.com');

&nbsp;&nbsp;&nbsp;&nbsp;await browser.close();

})();

使用代理

你可以使用 "page.setProxy() "方法在 Puppeteer 中实现代理。该方法允许你为页面发出的所有请求指定一个代理服务器。该方法的语法如下:

page.setProxy({

&nbsp;&nbsp;&nbsp;&nbsp;server: '<IP Address of Proxy Server>',

&nbsp;&nbsp;&nbsp;&nbsp;port: <Port Number>,

&nbsp;&nbsp;&nbsp;&nbsp;username: '<Username (if required)>',

&nbsp;&nbsp;&nbsp;&nbsp;password: '<Password (if required)>'

});

您还可以指定协议和旁路列表等其他选项。有关此方法的更多详情,请参阅 Puppeteer 文档。 

测试代理

设置好代理后,对其进行测试以确保其正常工作非常重要。可以使用 Browserleaks 等工具检查 IP 地址,确保其与代理服务器相同。这对确保代理正常工作和用户数据安全非常重要。

排除 Puppeteer 上的代理问题

常见的代理问题: 

  1. 代理凭据不正确:如果输入的代理凭据不正确,Puppeteer 将无法连接代理服务器。 

  2. 代理阻止访问:如果代理服务器被配置为阻止访问某些网站,Puppeteer 可能无法访问这些网站。

  3. 防火墙问题:防火墙有时会阻止某些类型的流量,如来自 Puppeteer 的流量。

  4. DNS 问题:如果 DNS 服务器配置不当,Puppeteer 可能无法正确解析域名。

故障排除步骤: 

  1. 验证代理证书:如果使用代理服务器,请确保凭据正确无误。

  2. 检查防火墙设置:确保防火墙配置正确,允许来自 Puppeteer 的流量。

  3. 检查 DNS 设置:确保 DNS 服务器配置正确,并能正确解析域名。

  4. 使用不同的代理服务器进行测试:如果问题仍然存在,请尝试使用不同的代理服务器。

如何在 Puppeteer 中使用代理摘要

  1. 安装代理链模块: Puppeteer 可以在请求中使用代理。

  2. 配置代理设置: 通过指定代理 URL、验证类型和凭证,在 Puppeteer 中设置代理服务器。

  3. 创建网页实例并设置代理: 创建网页实例,并使用 page.setProxy() 方法设置代理。

  4. 在网络请求中使用代理: Puppeteer 将使用代理请求网页和其他网络服务。

使用代理的好处

提高安全性: 代理在用户和网络服务器之间充当中间人,有助于保护用户的身份和数据。

增强隐私保护: 代理可以屏蔽用户的 IP 地址,使用户的在线活动难以被追踪。

增强匿名性: 代理可以隐藏用户的身份,使其看起来像是从另一个地方访问网络。

更好的性能: 代理可以存储经常访问的网页,访问速度比用户直接访问网页更快。

知识库
License:  CC BY 4.0
Share

Further Reading

Jul 31, 2025

如何实现接口幂等性

通俗的说,用户在系统中有操作,不管重复多少次,都应该产生一样的效果或返回一样的结果的。 幂等性的概念 幂等(Idempotent)是一个数学与计算机学的概念,常见于抽象代数中。 f(n)=1^n//无...

Jul 19, 2025

10个npm工具包

有了npm之后,前端人员真的是过上好日子了。我们可以直接把别人写好的工具包拿来用,非常的方便。 1.day.js-轻量日期处理 npminstalldayjs importdayjsfrom'd...

Jul 17, 2025

How to set up PHP7.4 on MacOS.

Thisisallverywellandgood.Apartfromonesmallinsignificantthing… TheversionofPHPinuseiscurrently7.4. Th...

OLDER

高考后妈妈连1万块都拿不出!

NEWER

Share.js - 一键分享到微博、QQ空间、QQ好友、微信、腾讯微博、豆瓣、Facebook、Twitter、Linkedin、Google+、点点

Recently Updated

  • 如何实现接口幂等性
  • 10个npm工具包
  • How to set up PHP7.4 on MacOS.
  • Automa:一键自动化,网页数据采集与工作流程优化专家Automa:解锁自动化
  • Mac 下用 brew 搭建 LNMP

Trending Tags

thinkphp clippings

Contents

©2025 麦兜的小站. Some rights reserved.

Using the Halo theme Chirpy