Se a tarefa é comprobar respostas HTTP e seguir ligazóns ordinarias, non sempre fai falta un navegador completo. Ruby Mechanize expón o proxy no axente que realiza esas peticións:

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 supón que a biblioteca mechanize está cargada. Para unha comprobación permitida dunha páxina pública sen autenticación de proxy, a lista de proxies HTTP proporciona valores de host/porto candidatos para o exemplo. O método proxy tamén acepta un nome de usuario e un contrasinal como terceiro e cuarto argumentos opcionais cando o endpoint os require.

Reutilice o axente configurado para peticións que pertenzan á mesma sesión de navegación. Transporta cookies e historial, así como a configuración de rede. Cambiar o proxy de saída non crea por si mesmo unha identidade nova nin descarta unha cookie de inicio de sesión.

Para varias sesións de proxy, dea a cada unha o seu propio axente en lugar de cambiar un axente compartido mentres hai traballo en curso. A biblioteca tamén documenta nomes de conexión únicos cando se requiren conexións SSL segregadas; o nome do construtor do exemplo fai explícita esa elección.

Agrupar as comprobacións de URL relacionadas por proxy pode reducir reconfiguracións innecesarias. Manteña o resultado asociado á ruta e á URL que o produciron, incluíndo redireccións e respostas de erro.

Mechanize non reproduce a execución de JavaScript do navegador. Use un navegador real cando o comportamento probado dependa de scripts, da renderización ou de autenticación específica do navegador. Unha obtención HTTP correcta a través do proxy responde á pregunta máis estreita: que este axente puido realizar esa petición.

Artigos relacionados