如何在 Playwright 中使用代理:完整指南
为跨浏览器自动化配置 GProxy 代理与 Playwright。支持按 context 切换代理、Chrome/Firefox/WebKit 以及内置认证。
准备事项
- ✓[
- ✓"
- ✓P
- ✓y
- ✓t
- ✓h
- ✓o
- ✓n
- ✓
- ✓3
- ✓.
- ✓8
- ✓+
- ✓
- ✓或
- ✓
- ✓N
- ✓o
- ✓d
- ✓e
- ✓.
- ✓j
- ✓s
- ✓
- ✓1
- ✓6
- ✓+
- ✓"
- ✓,
- ✓
- ✓"
- ✓已
- ✓安
- ✓装
- ✓
- ✓P
- ✓l
- ✓a
- ✓y
- ✓w
- ✓r
- ✓i
- ✓g
- ✓h
- ✓t
- ✓(
- ✓p
- ✓i
- ✓p
- ✓
- ✓i
- ✓n
- ✓s
- ✓t
- ✓a
- ✓l
- ✓l
- ✓
- ✓p
- ✓l
- ✓a
- ✓y
- ✓w
- ✓r
- ✓i
- ✓g
- ✓h
- ✓t
- ✓
- ✓&
- ✓&
- ✓
- ✓p
- ✓l
- ✓a
- ✓y
- ✓w
- ✓r
- ✓i
- ✓g
- ✓h
- ✓t
- ✓
- ✓i
- ✓n
- ✓s
- ✓t
- ✓a
- ✓l
- ✓l
- ✓)
- ✓"
- ✓,
- ✓
- ✓"
- ✓拥
- ✓有
- ✓有
- ✓效
- ✓代
- ✓理
- ✓套
- ✓餐
- ✓的
- ✓
- ✓G
- ✓P
- ✓r
- ✓o
- ✓x
- ✓y
- ✓
- ✓账
- ✓户
- ✓"
- ✓,
- ✓
- ✓"
- ✓熟
- ✓悉
- ✓
- ✓a
- ✓s
- ✓y
- ✓n
- ✓c
- ✓/
- ✓a
- ✓w
- ✓a
- ✓i
- ✓t
- ✓
- ✓写
- ✓法
- ✓"
- ✓]
分步设置
[
{
"
T
I
T
L
E
"
:
"
安
装
P
L
A
Y
W
R
I
G
H
T
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
安
装
P
L
A
Y
W
R
I
G
H
T
及
浏
览
器
二
进
制
文
件
"
,
"
C
O
D
E
"
:
"
#
P
Y
T
H
O
N
\
N
P
I
P
I
N
S
T
A
L
L
P
L
A
Y
W
R
I
G
H
T
\
N
P
L
A
Y
W
R
I
G
H
T
I
N
S
T
A
L
L
C
H
R
O
M
I
U
M
\
N
\
N
#
N
O
D
E
.
J
S
\
N
N
P
M
I
N
S
T
A
L
L
P
L
A
Y
W
R
I
G
H
T
"
}
,
{
"
T
I
T
L
E
"
:
"
带
代
理
启
动
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
创
建
一
个
使
用
G
P
R
O
X
Y
代
理
的
浏
览
器
C
O
N
T
E
X
T
"
,
"
C
O
D
E
"
:
"
F
R
O
M
P
L
A
Y
W
R
I
G
H
T
.
S
Y
N
C
_
A
P
I
I
M
P
O
R
T
S
Y
N
C
_
P
L
A
Y
W
R
I
G
H
T
\
N
\
N
W
I
T
H
S
Y
N
C
_
P
L
A
Y
W
R
I
G
H
T
(
)
A
S
P
:
\
N
B
R
O
W
S
E
R
=
P
.
C
H
R
O
M
I
U
M
.
L
A
U
N
C
H
(
)
\
N
C
O
N
T
E
X
T
=
B
R
O
W
S
E
R
.
N
E
W
_
C
O
N
T
E
X
T
(
P
R
O
X
Y
=
{
\
N
'
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
'
U
S
E
R
N
A
M
E
'
:
'
Y
O
U
R
_
U
S
E
R
'
,
\
N
'
P
A
S
S
W
O
R
D
'
:
'
Y
O
U
R
_
P
A
S
S
'
\
N
}
)
\
N
P
A
G
E
=
C
O
N
T
E
X
T
.
N
E
W
_
P
A
G
E
(
)
\
N
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
P
R
I
N
T
(
P
A
G
E
.
C
O
N
T
E
N
T
(
)
)
"
}
,
{
"
T
I
T
L
E
"
:
"
按
C
O
N
T
E
X
T
轮
换
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
为
每
个
C
O
N
T
E
X
T
使
用
不
同
的
代
理
来
实
现
轮
换
"
,
"
C
O
D
E
"
:
"
C
O
U
N
T
R
I
E
S
=
[
'
U
S
'
,
'
D
E
'
,
'
G
B
'
,
'
F
R
'
]
\
N
F
O
R
C
O
U
N
T
R
Y
I
N
C
O
U
N
T
R
I
E
S
:
\
N
C
T
X
=
B
R
O
W
S
E
R
.
N
E
W
_
C
O
N
T
E
X
T
(
P
R
O
X
Y
=
{
\
N
'
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
'
U
S
E
R
N
A
M
E
'
:
F
'
U
S
E
R
-
C
O
U
N
T
R
Y
-
{
C
O
U
N
T
R
Y
}
'
,
\
N
'
P
A
S
S
W
O
R
D
'
:
'
P
A
S
S
'
\
N
}
)
\
N
P
A
G
E
=
C
T
X
.
N
E
W
_
P
A
G
E
(
)
\
N
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
P
R
I
N
T
(
F
'
{
C
O
U
N
T
R
Y
}
:
{
P
A
G
E
.
T
E
X
T
_
C
O
N
T
E
N
T
(
\
"
B
O
D
Y
\
"
)
}
'
)
\
N
C
T
X
.
C
L
O
S
E
(
)
"
}
,
{
"
T
I
T
L
E
"
:
"
添
加
地
理
位
置
模
拟
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
把
代
理
与
L
O
C
A
L
E
、
时
区
结
合
,
实
现
完
整
的
地
理
模
拟
"
,
"
C
O
D
E
"
:
"
C
O
N
T
E
X
T
=
B
R
O
W
S
E
R
.
N
E
W
_
C
O
N
T
E
X
T
(
\
N
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
'
U
S
E
R
N
A
M
E
'
:
'
U
S
E
R
-
C
O
U
N
T
R
Y
-
U
S
'
,
'
P
A
S
S
W
O
R
D
'
:
'
P
A
S
S
'
}
,
\
N
L
O
C
A
L
E
=
'
E
N
-
U
S
'
,
\
N
T
I
M
E
Z
O
N
E
_
I
D
=
'
A
M
E
R
I
C
A
/
N
E
W
_
Y
O
R
K
'
,
\
N
G
E
O
L
O
C
A
T
I
O
N
=
{
'
L
A
T
I
T
U
D
E
'
:
4
0
.
7
1
2
8
,
'
L
O
N
G
I
T
U
D
E
'
:
-
7
4
.
0
0
6
0
}
,
\
N
P
E
R
M
I
S
S
I
O
N
S
=
[
'
G
E
O
L
O
C
A
T
I
O
N
'
]
\
N
)
"
}
,
{
"
T
I
T
L
E
"
:
"
运
行
并
行
抓
取
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
用
不
同
的
代
理
并
发
抓
取
多
个
页
面
"
,
"
C
O
D
E
"
:
"
I
M
P
O
R
T
A
S
Y
N
C
I
O
\
N
F
R
O
M
P
L
A
Y
W
R
I
G
H
T
.
A
S
Y
N
C
_
A
P
I
I
M
P
O
R
T
A
S
Y
N
C
_
P
L
A
Y
W
R
I
G
H
T
\
N
\
N
A
S
Y
N
C
D
E
F
S
C
R
A
P
E
(
B
R
O
W
S
E
R
,
U
R
L
,
C
O
U
N
T
R
Y
)
:
\
N
C
T
X
=
A
W
A
I
T
B
R
O
W
S
E
R
.
N
E
W
_
C
O
N
T
E
X
T
(
P
R
O
X
Y
=
{
\
N
'
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
'
U
S
E
R
N
A
M
E
'
:
F
'
U
S
E
R
-
C
O
U
N
T
R
Y
-
{
C
O
U
N
T
R
Y
}
'
,
\
N
'
P
A
S
S
W
O
R
D
'
:
'
P
A
S
S
'
\
N
}
)
\
N
P
A
G
E
=
A
W
A
I
T
C
T
X
.
N
E
W
_
P
A
G
E
(
)
\
N
A
W
A
I
T
P
A
G
E
.
G
O
T
O
(
U
R
L
)
\
N
T
I
T
L
E
=
A
W
A
I
T
P
A
G
E
.
T
I
T
L
E
(
)
\
N
A
W
A
I
T
C
T
X
.
C
L
O
S
E
(
)
\
N
R
E
T
U
R
N
T
I
T
L
E
"
}
]
代码示例
为什么用 Playwright 做基于代理的抓取?
微软出品的 Playwright 是当下最现代的浏览器自动化框架,用一套 API 即可驱动 Chromium、Firefox 和 WebKit。它对代理用户最关键的特性是:原生支持按 context 配置代理。与 Puppeteer 和 Selenium 不同,您无需启动新的浏览器实例,就能为不同的浏览器 context 设置不同的代理。配合 GProxy 的 10M+ 住宅 IP,这让 Playwright 成为并发地理定向抓取的最快选择。
按 context 配置代理
Playwright 的浏览器 context 是轻量、相互隔离的环境,每个 context 都可以有自己的代理设置。用一个 GProxy 代理创建 context,完成抓取后关闭它,再用另一个代理创建新的 context — 全部在同一个浏览器实例内完成。这比 Selenium 或 Puppeteer 的做法效率高得多。
内置认证
Playwright 通过代理配置原生处理 HTTP 代理认证。直接在代理配置中传入用户名和密码即可 — 不需要浏览器扩展或各种变通办法。这在 Chromium、Firefox 和 WebKit 上表现一致。
多浏览器支持
用同一套代码在不同浏览器引擎上测试和抓取。多数任务用 Chromium,遇到拦截 Chrome 系自动化的站点用 Firefox,需要类 Safari 行为时用 WebKit。它们都通过同一套配置 API 支持 GProxy 代理。
在 Playwright 中做地理定向
把 GProxy 的国家定向代理与 Playwright 内置的 geolocation 和 locale 设置结合起来,即可完成完整的位置模拟。把代理设为美国 IP,locale 设为 en-US,时区设为 America/New_York,地理位置设为纽约坐标,就能得到一个完全一致的美国用户画像。
大规模并行抓取
Playwright 的架构以极低的资源占用支持高并发。在单个浏览器实例内创建数十个使用不同 GProxy 代理的浏览器 context 并行运行。每个 context 都是隔离的,拥有各自的 cookie、storage 和代理 — 非常适合大规模数据采集。
