Se a tarefa é verificar respostas HTTP e seguir ligações comuns, um navegador completo nem sempre é necessário. O Ruby Mechanize expõe o proxy no agente que faz esses pedidos:

agent = Mechanize.new('office-route')
begin
  agent.set_proxy('proxy.example', 8080)
  page = agent.get('https://www.example.com/')
  puts page.code
ensure
  agent.shutdown
end

Isto pressupõe que a biblioteca mechanize está carregada. Para uma verificação permitida de uma página pública sem autenticação de proxy, a lista de proxies HTTP fornece valores de anfitrião/porta adequados para o exemplo. O método proxy também aceita um nome de utilizador e uma palavra-passe como terceiro e quarto argumentos opcionais quando o endpoint os exige.

Reutilize o agente configurado para pedidos que pertencem à mesma sessão de navegação. Transporta cookies e histórico, bem como definições de rede. Mudar o proxy de saída não cria por si só uma nova identidade nem descarta um cookie de início de sessão.

Para várias sessões de proxy, dê a cada uma o seu próprio agente em vez de mudar um agente partilhado enquanto o trabalho decorre. A biblioteca também documenta nomes de ligação únicos quando são necessárias ligações SSL separadas; o nome do construtor no exemplo torna essa escolha explícita.

Agrupar as verificações de URL relacionadas por proxy pode reduzir reconfigurações desnecessárias. Mantenha o resultado associado à rota e ao URL que o produziram, incluindo redirecionamentos e respostas de erro.

O Mechanize não reproduz a execução de JavaScript do navegador. Utilize um navegador real quando o comportamento em teste depender de scripts, renderização ou autenticação específica do navegador. Uma obtenção HTTP bem-sucedida através do proxy responde à pergunta mais estreita: que este agente conseguiu fazer esse pedido.

Artigos relacionados