Como usar proxies com o Selenium: guia completo
Configure proxies GProxy com o Selenium WebDriver para automação de navegador e scraping. Cobre Chrome, Firefox, modo headless e autenticação de proxy.
Pré-requisitos
- ✓[
- ✓"
- ✓P
- ✓y
- ✓t
- ✓h
- ✓o
- ✓n
- ✓
- ✓3
- ✓.
- ✓8
- ✓+
- ✓
- ✓i
- ✓n
- ✓s
- ✓t
- ✓a
- ✓l
- ✓a
- ✓d
- ✓o
- ✓"
- ✓,
- ✓
- ✓"
- ✓S
- ✓e
- ✓l
- ✓e
- ✓n
- ✓i
- ✓u
- ✓m
- ✓
- ✓4
- ✓.
- ✓x
- ✓
- ✓i
- ✓n
- ✓s
- ✓t
- ✓a
- ✓l
- ✓a
- ✓d
- ✓o
- ✓
- ✓(
- ✓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
- ✓
- ✓o
- ✓u
- ✓
- ✓G
- ✓e
- ✓c
- ✓k
- ✓o
- ✓D
- ✓r
- ✓i
- ✓v
- ✓e
- ✓r
- ✓
- ✓c
- ✓o
- ✓m
- ✓p
- ✓a
- ✓t
- ✓í
- ✓v
- ✓e
- ✓l
- ✓
- ✓c
- ✓o
- ✓m
- ✓
- ✓a
- ✓
- ✓v
- ✓e
- ✓r
- ✓s
- ✓ã
- ✓o
- ✓
- ✓d
- ✓o
- ✓
- ✓s
- ✓e
- ✓u
- ✓
- ✓n
- ✓a
- ✓v
- ✓e
- ✓g
- ✓a
- ✓d
- ✓o
- ✓r
- ✓"
- ✓,
- ✓
- ✓"
- ✓C
- ✓o
- ✓n
- ✓t
- ✓a
- ✓
- ✓G
- ✓P
- ✓r
- ✓o
- ✓x
- ✓y
- ✓
- ✓c
- ✓o
- ✓m
- ✓
- ✓p
- ✓l
- ✓a
- ✓n
- ✓o
- ✓
- ✓d
- ✓e
- ✓
- ✓p
- ✓r
- ✓o
- ✓x
- ✓y
- ✓
- ✓a
- ✓t
- ✓i
- ✓v
- ✓o
- ✓"
- ✓]
Configuração passo a passo
[
{
"
T
I
T
L
E
"
:
"
I
N
S
T
A
L
E
O
S
E
L
E
N
I
U
M
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
I
N
S
T
A
L
E
O
S
E
L
E
N
I
U
M
E
O
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
O
N
F
I
G
U
R
E
O
C
H
R
O
M
E
C
O
M
P
R
O
X
Y
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
C
O
N
F
I
G
U
R
E
O
C
H
R
O
M
E
W
E
B
D
R
I
V
E
R
C
O
M
A
G
P
R
O
X
Y
"
,
"
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
"
:
"
T
R
A
T
E
A
A
U
T
E
N
T
I
C
A
Ç
Ã
O
D
O
P
R
O
X
Y
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
P
A
R
A
P
R
O
X
I
E
S
C
O
M
A
U
T
E
N
T
I
C
A
Ç
Ã
O
,
C
R
I
E
U
M
A
E
X
T
E
N
S
Ã
O
D
O
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
"
:
"
A
D
I
C
I
O
N
E
A
L
Ó
G
I
C
A
D
E
R
O
T
A
Ç
Ã
O
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
R
O
T
A
C
I
O
N
E
I
P
S
C
R
I
A
N
D
O
N
O
V
A
S
I
N
S
T
Â
N
C
I
A
S
D
O
D
R
I
V
E
R
"
,
"
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
"
:
"
T
E
S
T
E
A
C
O
N
F
I
G
U
R
A
Ç
Ã
O
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
V
E
R
I
F
I
Q
U
E
S
E
O
P
R
O
X
Y
E
S
T
Á
F
U
N
C
I
O
N
A
N
D
O
"
,
"
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
)
"
}
]
Exemplos de código
Por que usar proxies com o Selenium?
O Selenium automatiza navegadores reais, o que o torna ideal para fazer scraping de sites com muito JavaScript. No entanto, rodar navegadores automatizados a partir de um único IP dispara rapidamente os sistemas anti-bot. Os 10M+ IPs residenciais da GProxy permitem rotacionar o IP de saída do navegador, fazendo cada sessão parecer um visitante único vindo de qualquer um dos 150+ países.
Configuração de proxy no Chrome WebDriver
O Chrome suporta a configuração de proxy pelos argumentos do ChromeOptions. Para proxies simples, sem autenticação, passe o argumento --proxy-server. Para proxies com autenticação, como os da GProxy, você vai precisar de uma extensão do Chrome que trate a autenticação do proxy, já que o Chrome não suporta nativamente usuário:senha na URL do proxy.
Configuração de proxy no Firefox WebDriver
O Firefox trata a configuração de proxy pelas preferências do FirefoxProfile ou do Options. Ao contrário do Chrome, o Firefox suporta autenticação de proxy pelas configurações de perfil, o que torna a configuração com os endpoints autenticados da GProxy um pouco mais fácil.
Considerações sobre o modo headless
Rodar o Selenium em modo headless é comum em deploys de servidor. Tanto o Chrome quanto o Firefox suportam operação headless com proxies. Vale notar que alguns sistemas anti-bot detectam navegadores headless — os IPs residenciais da GProxy ajudam, mas considere também usar o undetected-chromedriver ou adicionar fingerprints de navegador realistas.
Estratégia de rotação de proxies
Diferentemente das bibliotecas HTTP, o Selenium mantém uma sessão de navegador, então não dá para rotacionar proxies por requisição com facilidade. Em vez disso, rotacione por sessão: crie uma nova instância do WebDriver com um proxy diferente para cada tarefa. O endpoint backconnect da GProxy simplifica isso — cada nova conexão recebe automaticamente um IP novo.
Dicas de desempenho
A automação de navegador consome muitos recursos. Para maximizar a vazão: use o modo headless, desative o carregamento de imagens e CSS quando não forem necessários, defina timeouts de carregamento de página e rode várias instâncias de navegador em paralelo com endpoints diferentes da GProxy para ter diversidade de IPs.
Casos de uso
[
{
"
T
I
T
L
E
"
:
"
S
C
R
A
P
I
N
G
D
E
S
I
T
E
S
C
O
M
M
U
I
T
O
J
A
V
A
S
C
R
I
P
T
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
F
A
Ç
A
S
C
R
A
P
I
N
G
D
E
S
P
A
S
E
S
I
T
E
S
D
I
N
Â
M
I
C
O
S
Q
U
E
E
X
I
G
E
M
R
E
N
D
E
R
I
Z
A
Ç
Ã
O
C
O
M
P
L
E
T
A
N
O
N
A
V
E
G
A
D
O
R
.
"
}
,
{
"
T
I
T
L
E
"
:
"
A
U
T
O
M
A
Ç
Ã
O
D
E
F
O
R
M
U
L
Á
R
I
O
S
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
A
U
T
O
M
A
T
I
Z
E
E
N
V
I
O
S
D
E
F
O
R
M
U
L
Á
R
I
O
S
E
F
L
U
X
O
S
D
E
V
Á
R
I
A
S
E
T
A
P
A
S
P
O
R
M
E
I
O
D
E
N
A
V
E
G
A
D
O
R
E
S
C
O
M
P
R
O
X
Y
.
"
}
,
{
"
T
I
T
L
E
"
:
"
T
E
S
T
E
S
V
I
S
U
A
I
S
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
C
A
P
T
U
R
E
S
C
R
E
E
N
S
H
O
T
S
D
E
D
I
F
E
R
E
N
T
E
S
G
E
O
L
O
C
A
L
I
Z
A
Ç
Õ
E
S
U
S
A
N
D
O
P
R
O
X
I
E
S
R
E
S
I
D
E
N
C
I
A
I
S
S
E
G
M
E
N
T
A
D
O
S
.
"
}
,
{
"
T
I
T
L
E
"
:
"
G
E
S
T
Ã
O
D
E
C
O
N
T
A
S
"
,
"
D
E
S
C
R
I
P
T
I
O
N
"
:
"
G
E
R
E
N
C
I
E
V
Á
R
I
A
S
C
O
N
T
A
S
C
O
M
I
P
S
Ú
N
I
C
O
S
P
O
R
S
E
S
S
Ã
O
P
A
R
A
U
M
A
A
U
T
O
M
A
Ç
Ã
O
S
E
G
U
R
A
.
"
}
]
FAQ
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Pronto para começar?
Comece com a GProxy em minutos — proxies residenciais a partir de $0.85/GB, IPv6 a partir de $0.03/proxy, pague conforme o uso.
