Ir para o conteúdo

Automações Web e Proxies

Ao desenvolver automações, geralmente é útil usar proxies para evitar bloqueios.

Os proxies podem ser autenticados ou anônimos.

Os proxies anônimos são os mais fáceis de usar e são amplamente suportados pelos navegadores.

Os proxies autenticados também são suportados pelos navegadores, mas infelizmente o processo de autenticação não é exposto por meio de argumentos da linha de comando para evitar a exposição das credenciais.

Neste guia, levaremos você nas etapas para usar proxies anônimos e autenticados.

Proxy anônimo

Através dos recursos do navegador, você pode definir as configurações de proxy para o navegador.

Com suas configurações de proxy prontas, como o endereço e a porta do servidor proxy, você pode usar o seguinte snippet de código para configurar o proxy no seu bot da web.

# Importe para WebBot
from botcity.web import WebBot, Browser, By

# Descomente a linha para o navegador desejado abaixo
# from botcity.web.browsers.firefox import default_capabilities
# from botcity.web.browsers.chrome import default_capabilities
# from botcity.web.browsers.edge import default_capabilities
# from botcity.web.browsers.ie import default_capabilities

# Modifique as configurações de proxy aqui
PROXY = "186.251.64.10:8085"

# Obtenha os recursos padrão para o navegador
capabilities = default_capabilities()

# Ajuste conforme necessário para o proxy
capabilities['proxy'] = {
    "httpProxy": PROXY,
    "sslProxy": PROXY,
    "proxyType": "MANUAL",
}

bot = WebBot()

# Configura proxy no capabilities
bot.capabilities = capabilities

# Abre navegador usando o proxy definido acima
bot.browse("https://whatsmyip.org")
// descomamente A linha para o navegador desejado abaixo
// importar dev.botcity.framework.web.browsers.firefoxconfig;
// import dev.botcity.framework.web.browsers.chromeconfig;
// importar dev.botcity.framework.web.browshers.edgeConfig;

// Modifique as configurações de proxy aqui
String proxy = "186.251.64.10:8085";

// Obtenha os recursos padrão para o navegador
FirefoxConfig firefoxConfig = new FirefoxConfig();
MutableCapabilities capabilities = firefoxConfig.defaultCapabilities();

// Configuração de configuração de proxy
// ajuste conforme necessário para o proxy
Map<String, String> proxyConfig = new HashMap<String, String>();
proxyConfig.put("httpProxy", proxy);
proxyConfig.put("sslProxy", proxy);
proxyConfig.put("proxyType", "MANUAL");

capabilities.setCapability("proxy", proxyConfig);
setCapabilities(capabilities);

browse("https://whatsmyip.org");

Proxy Autenticado

Como mencionado acima, os proxies autenticados são suportados pelos navegadores, mas o processo de autenticação não é exposto via código para evitar a exposição das credenciais.

Aqui estão algumas alternativas para usar um proxy autenticado:

  • Configure o proxy no seu sistema operacional.
  • Use o Firefox com a extensão AutoAuth.

roteiro

Nossa equipe atualizará este guia à medida que encontrarmos mais alternativas para usar um proxy autenticado.

Usando o Firefox com AutoAuth

AutoAuth é um complemento simples do Firefox baseado em WebExtension que envia credenciais de autenticação HTTP automaticamente.

Na primeira vez em que você abre uma página da web, o Autoauth solicitará as credenciais.

A página de login contém um formulário com os seguintes campos:

Campo Descrição ID do DOM
Nome de usuário O nome de usuário a ser usado nome de usuário
Senha A senha a ser usada senha
Enviar O botão enviar enviar

Para usar esta extensão com seu Web Bot, você precisará baixar o arquivo xpi da página de versões do repositório AutoAuth e salve-o em um local acessível ao seu Web Bot.

Dica

Você pode adicionar o arquivo xpi à pasta resources do seu bot e ele tornará seu código portátil em diferentes ambientes de tempo de execução.

Com o arquivo xpi, você pode usar o seguinte trecho de código para configurar o proxy no seu Web Bot.

# Importe para WebBot
from botcity.web import WebBot, Browser, By

# Descomente a linha para o navegador desejado abaixo
# from botcity.web.browsers.firefox import default_capabilities
# from botcity.web.browsers.chrome import default_capabilities
# from botcity.web.browsers.edge import default_capabilities
# from botcity.web.browsers.ie import default_capabilities

# Modifique as configurações de proxy aqui
PROXY = "186.251.64.10:8085"

NOME_USUARIO = "proxyuser"
SENHA = "s3cr3tp4ssw0rd"

# Obtenha os recursos padrão para o navegador
capabilities = default_capabilities()

# Ajuste conforme necessário para o proxy
capabilities['proxy'] = {
    "httpProxy": PROXY,
    "sslProxy": PROXY,
    "proxyType": "MANUAL",
}

bot = WebBot()

# Configuração para usar o Firefox
bot.browser = Browser.FIREFOX

# Configura proxy no capabilities
bot.capabilities = capabilities

# Assumindo que o AutoAuth.xpi esteja na pasta 'resources' do seu bot
autoauth_xpi = bot.get_resource_abspath("autoauth-3.1.1-an.fx.xpi")

# Adicione a extensão AutoAuth ao navegador
bot.install_firefox_extension(autoauth_xpi)

bot.browse("https://whatsmyip.org")

# Preencha o formulário de login
nome_usuario = bot.find_element("login", By.ID)
nome_usuario.send_keys(NOME_USUARIO)

senha = bot.find_element("password", By.ID)
senha.send_keys(SENHA)

# Envie o formulário
enviar = bot.find_element("submit", By.ID)
enviar.click()
// descomamente A linha para o navegador desejado abaixo
// importar dev.botcity.framework.web.browsers.firefoxconfig;
// import dev.botcity.framework.web.browsers.chromeconfig;
// importar dev.botcity.framework.web.browshers.edgeConfig;

// Modifique as configurações de proxy aqui
String proxy = "186.251.64.10:8085";

String NOME_USUARIO = "proxyuser";
String SENHA = "s3cr3tp4ssw0rd";

// Obtenha os recursos padrão para o navegador
FirefoxConfig firefoxConfig = new FirefoxConfig();
MutableCapabilities capabilities = firefoxConfig.defaultCapabilities();

// Configuração de configuração de proxy
// ajuste conforme necessário para o proxy
Map<String, String> proxyConfig = new HashMap<String, String>();
proxyConfig.put("httpProxy", proxy);
proxyConfig.put("sslProxy", proxy);
proxyConfig.put("proxyType", "MANUAL");

capabilities.setCapability("proxy", proxyConfig);
setCapabilities(capabilities);

// Assuming AutoAuth XPI is in the `resources` folder of your bot
String autoAuthXPI = "./src/resources/autoauth-3.1.1-an.fx.xpi";

// Adicione a extensão Autoauth ao navegador
installFirefoxExtension(autoAuthXPI);

browse("https://whatsmyip.org");

// Preencha o formulário de login
WebElement elementoNomeUsuario = findElement(By.id("login"));
elementoNomeUsuario.sendKeys(NOME_USUARIO);

WebElement elementoSenha = findElement(By.id("password"));
elementoSenha.sendKeys(SENHA);

// Envie o formulário
WebElement  = findElement(By.id("submit"));
elementoEnviar.click();

Importante

Depois de se autenticar com o AutoAuth, você não será solicitado a fornrcer credenciais novamente.