如何在 Selenium 中使用代理:完整指南
为浏览器自动化和数据抓取配置 GProxy 代理与 Selenium WebDriver,涵盖 Chrome、Firefox、headless 模式和代理认证。
准备事项
- ✓[
- ✓"
- ✓已
- ✓安
- ✓装
- ✓
- ✓P
- ✓y
- ✓t
- ✓h
- ✓o
- ✓n
- ✓
- ✓3
- ✓.
- ✓8
- ✓+
- ✓"
- ✓,
- ✓
- ✓"
- ✓已
- ✓安
- ✓装
- ✓
- ✓S
- ✓e
- ✓l
- ✓e
- ✓n
- ✓i
- ✓u
- ✓m
- ✓
- ✓4
- ✓.
- ✓x
- ✓(
- ✓p
- ✓i
- ✓p
- ✓
- ✓i
- ✓n
- ✓s
- ✓t
- ✓a
- ✓l
- ✓l
- ✓
- ✓s
- ✓e
- ✓l
- ✓e
- ✓n
- ✓i
- ✓u
- ✓m
- ✓)
- ✓"
- ✓,
- ✓
- ✓"
- ✓与
- ✓您
- ✓的
- ✓浏
- ✓览
- ✓器
- ✓版
- ✓本
- ✓匹
- ✓配
- ✓的
- ✓
- ✓C
- ✓h
- ✓r
- ✓o
- ✓m
- ✓e
- ✓D
- ✓r
- ✓i
- ✓v
- ✓e
- ✓r
- ✓
- ✓或
- ✓
- ✓G
- ✓e
- ✓c
- ✓k
- ✓o
- ✓D
- ✓r
- ✓i
- ✓v
- ✓e
- ✓r
- ✓"
- ✓,
- ✓
- ✓"
- ✓拥
- ✓有
- ✓有
- ✓效
- ✓代
- ✓理
- ✓套
- ✓餐
- ✓的
- ✓
- ✓G
- ✓P
- ✓r
- ✓o
- ✓x
- ✓y
- ✓
- ✓账
- ✓户
- ✓"
- ✓]
分步设置
[
{
"
T
I
T
L
E
"
:
"
安
装
S
E
L
E
N
I
U
M
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
安
装
S
E
L
E
N
I
U
M
和
W
E
B
D
R
I
V
E
R
-
M
A
N
A
G
E
R
"
,
"
C
O
D
E
"
:
"
P
I
P
I
N
S
T
A
L
L
S
E
L
E
N
I
U
M
W
E
B
D
R
I
V
E
R
-
M
A
N
A
G
E
R
"
}
,
{
"
T
I
T
L
E
"
:
"
为
C
H
R
O
M
E
配
置
代
理
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
使
用
G
P
R
O
X
Y
配
置
C
H
R
O
M
E
W
E
B
D
R
I
V
E
R
"
,
"
C
O
D
E
"
:
"
F
R
O
M
S
E
L
E
N
I
U
M
I
M
P
O
R
T
W
E
B
D
R
I
V
E
R
\
N
F
R
O
M
S
E
L
E
N
I
U
M
.
W
E
B
D
R
I
V
E
R
.
C
H
R
O
M
E
.
O
P
T
I
O
N
S
I
M
P
O
R
T
O
P
T
I
O
N
S
\
N
\
N
O
P
T
S
=
O
P
T
I
O
N
S
(
)
\
N
O
P
T
S
.
A
D
D
_
A
R
G
U
M
E
N
T
(
'
-
-
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
D
R
I
V
E
R
=
W
E
B
D
R
I
V
E
R
.
C
H
R
O
M
E
(
O
P
T
I
O
N
S
=
O
P
T
S
)
"
}
,
{
"
T
I
T
L
E
"
:
"
处
理
代
理
认
证
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
对
于
需
要
认
证
的
代
理
,
创
建
一
个
C
H
R
O
M
E
扩
展
"
,
"
C
O
D
E
"
:
"
I
M
P
O
R
T
Z
I
P
F
I
L
E
,
J
S
O
N
\
N
\
N
M
A
N
I
F
E
S
T
=
{
\
"
V
E
R
S
I
O
N
\
"
:
\
"
1
.
0
.
0
\
"
,
\
"
M
A
N
I
F
E
S
T
_
V
E
R
S
I
O
N
\
"
:
2
,
\
N
\
"
N
A
M
E
\
"
:
\
"
P
R
O
X
Y
A
U
T
H
\
"
,
\
N
\
"
P
E
R
M
I
S
S
I
O
N
S
\
"
:
[
\
"
P
R
O
X
Y
\
"
,
\
"
W
E
B
R
E
Q
U
E
S
T
\
"
,
\
"
W
E
B
R
E
Q
U
E
S
T
B
L
O
C
K
I
N
G
\
"
,
\
"
<
A
L
L
_
U
R
L
S
>
\
"
]
,
\
N
\
"
B
A
C
K
G
R
O
U
N
D
\
"
:
{
\
"
S
C
R
I
P
T
S
\
"
:
[
\
"
B
A
C
K
G
R
O
U
N
D
.
J
S
\
"
]
}
}
\
N
\
N
B
G
_
J
S
=
'
C
H
R
O
M
E
.
W
E
B
R
E
Q
U
E
S
T
.
O
N
A
U
T
H
R
E
Q
U
I
R
E
D
.
A
D
D
L
I
S
T
E
N
E
R
(
F
U
N
C
T
I
O
N
(
D
)
{
R
E
T
U
R
N
{
A
U
T
H
C
R
E
D
E
N
T
I
A
L
S
:
{
U
S
E
R
N
A
M
E
:
\
"
U
S
E
R
\
"
,
P
A
S
S
W
O
R
D
:
\
"
P
A
S
S
\
"
}
}
;
}
,
{
U
R
L
S
:
[
\
"
<
A
L
L
_
U
R
L
S
>
\
"
]
}
,
[
\
"
B
L
O
C
K
I
N
G
\
"
]
)
;
'
\
N
\
N
W
I
T
H
Z
I
P
F
I
L
E
.
Z
I
P
F
I
L
E
(
'
P
R
O
X
Y
_
A
U
T
H
.
Z
I
P
'
,
'
W
'
)
A
S
Z
P
:
\
N
Z
P
.
W
R
I
T
E
S
T
R
(
'
M
A
N
I
F
E
S
T
.
J
S
O
N
'
,
J
S
O
N
.
D
U
M
P
S
(
M
A
N
I
F
E
S
T
)
)
\
N
Z
P
.
W
R
I
T
E
S
T
R
(
'
B
A
C
K
G
R
O
U
N
D
.
J
S
'
,
B
G
_
J
S
)
\
N
\
N
O
P
T
S
.
A
D
D
_
E
X
T
E
N
S
I
O
N
(
'
P
R
O
X
Y
_
A
U
T
H
.
Z
I
P
'
)
"
}
,
{
"
T
I
T
L
E
"
:
"
加
入
轮
换
逻
辑
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
通
过
创
建
新
的
D
R
I
V
E
R
实
例
来
轮
换
I
P
"
,
"
C
O
D
E
"
:
"
D
E
F
G
E
T
_
D
R
I
V
E
R
(
)
:
\
N
O
P
T
S
=
O
P
T
I
O
N
S
(
)
\
N
O
P
T
S
.
A
D
D
_
A
R
G
U
M
E
N
T
(
'
-
-
H
E
A
D
L
E
S
S
=
N
E
W
'
)
\
N
O
P
T
S
.
A
D
D
_
A
R
G
U
M
E
N
T
(
'
-
-
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
R
E
T
U
R
N
W
E
B
D
R
I
V
E
R
.
C
H
R
O
M
E
(
O
P
T
I
O
N
S
=
O
P
T
S
)
\
N
\
N
F
O
R
U
R
L
I
N
U
R
L
S
:
\
N
D
R
I
V
E
R
=
G
E
T
_
D
R
I
V
E
R
(
)
\
N
D
R
I
V
E
R
.
G
E
T
(
U
R
L
)
\
N
#
.
.
.
E
X
T
R
A
C
T
D
A
T
A
\
N
D
R
I
V
E
R
.
Q
U
I
T
(
)
"
}
,
{
"
T
I
T
L
E
"
:
"
测
试
配
置
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
验
证
代
理
是
否
正
常
工
作
"
,
"
C
O
D
E
"
:
"
D
R
I
V
E
R
.
G
E
T
(
'
H
T
T
P
S
:
/
/
H
T
T
P
B
I
N
.
O
R
G
/
I
P
'
)
\
N
P
R
I
N
T
(
D
R
I
V
E
R
.
F
I
N
D
_
E
L
E
M
E
N
T
(
'
T
A
G
N
A
M
E
'
,
'
P
R
E
'
)
.
T
E
X
T
)
"
}
]
代码示例
为什么要在 Selenium 中使用代理?
Selenium 自动化操作真实浏览器,非常适合抓取重度依赖 JavaScript 的网站。但是,用单一 IP 运行自动化浏览器会很快触发反机器人系统。GProxy 的 10M+ 住宅 IP 可让您轮换浏览器的出口 IP,使每次会话都像是来自 150+ 国家之一的独立访客。
Chrome WebDriver 代理配置
Chrome 通过 ChromeOptions 参数支持代理配置。对于无需认证的简单代理,传入 --proxy-server 参数即可。对于 GProxy 这类需要认证的代理,则需要一个处理代理认证的 Chrome 扩展,因为 Chrome 原生不支持在代理 URL 中携带 用户名:密码。
Firefox WebDriver 代理配置
Firefox 通过 FirefoxProfile 或 Options 首选项处理代理配置。与 Chrome 不同,Firefox 支持在配置文件设置中完成代理认证,因此配合 GProxy 的认证型接入点配置起来略微简单一些。
Headless 模式注意事项
在服务器部署中,以 headless 模式运行 Selenium 很常见。Chrome 和 Firefox 都支持带代理的 headless 运行。请注意,部分反机器人系统能够识别 headless 浏览器——GProxy 的住宅 IP 会有帮助,但也建议使用 undetected-chromedriver 或添加真实的浏览器指纹。
代理轮换策略
与 HTTP 库不同,Selenium 会维持一个浏览器会话,因此难以按请求轮换代理。应改为按会话轮换:为每个任务用不同的代理创建新的 WebDriver 实例。GProxy 的 backconnect 接入点简化了这一点——每条新连接都会自动获得一个新的 IP。
性能建议
浏览器自动化非常消耗资源。要提升吞吐量:使用 headless 模式,在不需要时禁用图片和 CSS 加载,设置页面加载超时,并使用不同的 GProxy 接入点并行运行多个浏览器实例以获得 IP 多样性。
