如何在 Puppeteer 中使用代理:完整指南
为无头 Chrome 自动化配置 GProxy 代理,涵盖代理认证、按页面切换代理和 stealth 技术。
准备事项
- ✓[
- ✓"
- ✓已
- ✓安
- ✓装
- ✓
- ✓N
- ✓o
- ✓d
- ✓e
- ✓.
- ✓j
- ✓s
- ✓
- ✓1
- ✓6
- ✓+
- ✓"
- ✓,
- ✓
- ✓"
- ✓已
- ✓安
- ✓装
- ✓
- ✓P
- ✓u
- ✓p
- ✓p
- ✓e
- ✓t
- ✓e
- ✓e
- ✓r
- ✓(
- ✓n
- ✓p
- ✓m
- ✓
- ✓i
- ✓n
- ✓s
- ✓t
- ✓a
- ✓l
- ✓l
- ✓
- ✓p
- ✓u
- ✓p
- ✓p
- ✓e
- ✓t
- ✓e
- ✓e
- ✓r
- ✓)
- ✓"
- ✓,
- ✓
- ✓"
- ✓拥
- ✓有
- ✓有
- ✓效
- ✓代
- ✓理
- ✓套
- ✓餐
- ✓的
- ✓
- ✓G
- ✓P
- ✓r
- ✓o
- ✓x
- ✓y
- ✓
- ✓账
- ✓户
- ✓"
- ✓,
- ✓
- ✓"
- ✓具
- ✓备
- ✓基
- ✓础
- ✓
- ✓J
- ✓a
- ✓v
- ✓a
- ✓S
- ✓c
- ✓r
- ✓i
- ✓p
- ✓t
- ✓/
- ✓a
- ✓s
- ✓y
- ✓n
- ✓c
- ✓-
- ✓a
- ✓w
- ✓a
- ✓i
- ✓t
- ✓
- ✓知
- ✓识
- ✓"
- ✓]
分步设置
[
{
"
T
I
T
L
E
"
:
"
安
装
P
U
P
P
E
T
E
E
R
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
使
用
N
P
M
安
装
P
U
P
P
E
T
E
E
R
"
,
"
C
O
D
E
"
:
"
N
P
M
I
N
S
T
A
L
L
P
U
P
P
E
T
E
E
R
P
U
P
P
E
T
E
E
R
-
E
X
T
R
A
P
U
P
P
E
T
E
E
R
-
E
X
T
R
A
-
P
L
U
G
I
N
-
S
T
E
A
L
T
H
"
}
,
{
"
T
I
T
L
E
"
:
"
启
动
带
代
理
的
浏
览
器
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
为
C
H
R
O
M
E
配
置
G
P
R
O
X
Y
代
理
"
,
"
C
O
D
E
"
:
"
C
O
N
S
T
P
U
P
P
E
T
E
E
R
=
R
E
Q
U
I
R
E
(
'
P
U
P
P
E
T
E
E
R
'
)
;
\
N
\
N
C
O
N
S
T
B
R
O
W
S
E
R
=
A
W
A
I
T
P
U
P
P
E
T
E
E
R
.
L
A
U
N
C
H
(
{
\
N
A
R
G
S
:
[
'
-
-
P
R
O
X
Y
-
S
E
R
V
E
R
=
H
T
T
P
:
/
/
P
R
O
X
Y
.
G
P
R
O
X
Y
.
N
E
T
:
1
0
0
0
'
]
\
N
}
)
;
\
N
C
O
N
S
T
P
A
G
E
=
A
W
A
I
T
B
R
O
W
S
E
R
.
N
E
W
P
A
G
E
(
)
;
"
}
,
{
"
T
I
T
L
E
"
:
"
进
行
代
理
认
证
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
使
用
P
A
G
E
.
A
U
T
H
E
N
T
I
C
A
T
E
(
)
设
置
代
理
凭
据
"
,
"
C
O
D
E
"
:
"
A
W
A
I
T
P
A
G
E
.
A
U
T
H
E
N
T
I
C
A
T
E
(
{
\
N
U
S
E
R
N
A
M
E
:
'
Y
O
U
R
_
U
S
E
R
N
A
M
E
'
,
\
N
P
A
S
S
W
O
R
D
:
'
Y
O
U
R
_
P
A
S
S
W
O
R
D
'
\
N
}
)
;
\
N
\
N
A
W
A
I
T
P
A
G
E
.
G
O
T
O
(
'
H
T
T
P
S
:
/
/
H
T
T
P
B
I
N
.
O
R
G
/
I
P
'
)
;
\
N
C
O
N
S
O
L
E
.
L
O
G
(
A
W
A
I
T
P
A
G
E
.
C
O
N
T
E
N
T
(
)
)
;
"
}
,
{
"
T
I
T
L
E
"
:
"
添
加
S
T
E
A
L
T
H
插
件
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
使
用
P
U
P
P
E
T
E
E
R
-
E
X
T
R
A
-
P
L
U
G
I
N
-
S
T
E
A
L
T
H
规
避
检
测
"
,
"
C
O
D
E
"
:
"
C
O
N
S
T
P
U
P
P
E
T
E
E
R
=
R
E
Q
U
I
R
E
(
'
P
U
P
P
E
T
E
E
R
-
E
X
T
R
A
'
)
;
\
N
C
O
N
S
T
S
T
E
A
L
T
H
P
L
U
G
I
N
=
R
E
Q
U
I
R
E
(
'
P
U
P
P
E
T
E
E
R
-
E
X
T
R
A
-
P
L
U
G
I
N
-
S
T
E
A
L
T
H
'
)
;
\
N
P
U
P
P
E
T
E
E
R
.
U
S
E
(
S
T
E
A
L
T
H
P
L
U
G
I
N
(
)
)
;
\
N
\
N
C
O
N
S
T
B
R
O
W
S
E
R
=
A
W
A
I
T
P
U
P
P
E
T
E
E
R
.
L
A
U
N
C
H
(
{
\
N
A
R
G
S
:
[
'
-
-
P
R
O
X
Y
-
S
E
R
V
E
R
=
H
T
T
P
:
/
/
P
R
O
X
Y
.
G
P
R
O
X
Y
.
N
E
T
:
1
0
0
0
'
]
\
N
}
)
;
"
}
,
{
"
T
I
T
L
E
"
:
"
屏
蔽
不
必
要
的
资
源
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
屏
蔽
图
片
和
字
体
以
加
快
抓
取
"
,
"
C
O
D
E
"
:
"
A
W
A
I
T
P
A
G
E
.
S
E
T
R
E
Q
U
E
S
T
I
N
T
E
R
C
E
P
T
I
O
N
(
T
R
U
E
)
;
\
N
P
A
G
E
.
O
N
(
'
R
E
Q
U
E
S
T
'
,
(
R
E
Q
)
=
>
{
\
N
I
F
(
[
'
I
M
A
G
E
'
,
'
F
O
N
T
'
,
'
S
T
Y
L
E
S
H
E
E
T
'
]
.
I
N
C
L
U
D
E
S
(
R
E
Q
.
R
E
S
O
U
R
C
E
T
Y
P
E
(
)
)
)
\
N
R
E
Q
.
A
B
O
R
T
(
)
;
\
N
E
L
S
E
\
N
R
E
Q
.
C
O
N
T
I
N
U
E
(
)
;
\
N
}
)
;
"
}
,
{
"
T
I
T
L
E
"
:
"
测
试
并
验
证
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
确
认
代
理
工
作
正
常
"
,
"
C
O
D
E
"
:
"
A
W
A
I
T
P
A
G
E
.
G
O
T
O
(
'
H
T
T
P
S
:
/
/
H
T
T
P
B
I
N
.
O
R
G
/
I
P
'
)
;
\
N
C
O
N
S
T
B
O
D
Y
=
A
W
A
I
T
P
A
G
E
.
E
V
A
L
U
A
T
E
(
(
)
=
>
D
O
C
U
M
E
N
T
.
B
O
D
Y
.
I
N
N
E
R
T
E
X
T
)
;
\
N
C
O
N
S
O
L
E
.
L
O
G
(
'
C
U
R
R
E
N
T
I
P
:
'
,
J
S
O
N
.
P
A
R
S
E
(
B
O
D
Y
)
.
O
R
I
G
I
N
)
;
\
N
A
W
A
I
T
B
R
O
W
S
E
R
.
C
L
O
S
E
(
)
;
"
}
]
代码示例
为什么在 Puppeteer 中使用代理?
Puppeteer 是 Google 官方的 Node.js 库,用于控制无头 Chrome,广泛用于网页抓取、测试和自动化。大规模访问网站时,需要代理来避免 IP 封禁和频率限制。GProxy 拥有覆盖 150+ 国家的 10M+ 住宅 IP 池,可让您的 Puppeteer 脚本看起来像来自任意地区的真实用户。
基础代理配置
Puppeteer 通过 Chrome 启动参数支持代理配置。启动浏览器时传入 --proxy-server。GProxy 的 HTTP 代理格式非常简单。与 Selenium 不同,Puppeteer 通过 page.authenticate() 方法提供对代理认证的编程控制,无需安装浏览器扩展。
按页面进行代理认证
Puppeteer 的 page.authenticate() 方法可优雅地处理代理认证。在导航前调用它设置凭据,代理请求认证时会自动发送。该方式可直接配合 GProxy 的用户名/密码认证使用。
代理轮换策略
在 Puppeteer 中有两种轮换策略:浏览器级(每个代理启动一个新浏览器)和上下文级(创建新的隐身上下文)。浏览器上下文比完整浏览器实例更轻量,且每个上下文可使用不同的代理配置,非常适合用不同 IP 进行并发抓取。
Stealth 与反检测
现代网站使用指纹识别来检测自动化浏览器。将 GProxy 住宅代理与 puppeteer-extra 及 stealth 插件结合使用可规避检测。stealth 插件会修补 navigator.webdriver、chrome.runtime 和 WebGL 指纹等常见检测点。
性能优化
配合代理优化 Puppeteer 的方法:通过请求拦截屏蔽不必要的资源(图片、字体、CSS);设置合适的超时;复用浏览器实例并新建页面;对速度敏感、风险较低的抓取任务使用 GProxy 的数据中心代理。
