Si la tarea es comprobar respuestas HTTP y seguir enlaces ordinarios, no siempre hace falta un navegador completo. Ruby Mechanize expone el proxy en el agente que realiza esas peticiones:

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

Esto supone que la biblioteca mechanize está cargada. Para una comprobación permitida de una página pública sin autenticación de proxy, la lista de proxies HTTP proporciona valores de host/puerto candidatos para el ejemplo. El método proxy también acepta un nombre de usuario y una contraseña como tercer y cuarto argumentos opcionales cuando el endpoint los requiere.

Reutiliza el agente configurado para peticiones que pertenezcan a la misma sesión de navegación. Transporta cookies e historial, además de la configuración de red. Cambiar el proxy de salida no crea por sí mismo una identidad nueva ni descarta una cookie de inicio de sesión.

Para varias sesiones de proxy, da a cada una su propio agente en lugar de cambiar un agente compartido mientras hay trabajo en curso. La biblioteca también documenta nombres de conexión únicos cuando se requieren conexiones SSL segregadas; el nombre del constructor del ejemplo hace explícita esa elección.

Agrupar las comprobaciones de URL relacionadas por proxy puede reducir reconfiguraciones innecesarias. Mantén el resultado asociado a la ruta y la URL que lo produjeron, incluidas las redirecciones y las respuestas de error.

Mechanize no reproduce la ejecución de JavaScript de un navegador. Usa un navegador real cuando el comportamiento probado dependa de scripts, del renderizado o de autenticación específica del navegador. Una obtención HTTP correcta a través del proxy responde a la pregunta más estrecha: que este agente pudo realizar esa petición.

Artículos relacionados