Mantenha um agente Ruby Mechanize por sessão de proxy
Configure o proxy de um agente Ruby Mechanize uma vez, reutilize-o para pedidos relacionados e limite deliberadamente o estado dos cookies e as ligações persistentes.
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
endIsto 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.