Si la tasca és comprovar respostes HTTP i seguir enllaços ordinaris, no sempre cal un navegador complet. Ruby Mechanize exposa el proxy a l'agent que fa aquestes peticions:

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

Això suposa que la biblioteca mechanize està carregada. Per a una comprovació permesa d'una pàgina pública sense autenticació de proxy, la llista de proxys HTTP proporciona valors de host/port candidats per a l'exemple. El mètode proxy també accepta un nom d'usuari i una contrasenya com a tercer i quart arguments opcionals quan l'extrem ho requereix.

Reutilitzeu l'agent configurat per a peticions que pertanyen a la mateixa sessió de navegació. Porta galetes i historial, així com la configuració de xarxa. Canviar el proxy de sortida no crea per si mateix una identitat nova ni descarta una galeta d'inici de sessió.

Per a diverses sessions de proxy, doneu a cadascuna el seu propi agent en lloc de canviar un agent compartit mentre la feina està en curs. La biblioteca també documenta noms de connexió únics quan calen connexions SSL segregades; el nom del constructor de l'exemple fa explícita aquesta tria.

Agrupar les comprovacions d'URL relacionades per proxy pot reduir reconfiguracions innecessàries. Mantingueu el resultat associat a la ruta i l'URL que l'han produït, incloent-hi redireccions i respostes d'error.

Mechanize no reprodueix l'execució de JavaScript del navegador. Feu servir un navegador real quan el comportament provat depengui d'escripts, del renderitzat o d'autenticació específica del navegador. Una obtenció HTTP correcta a través del proxy respon a la pregunta més estreta: que aquest agent va poder fer aquella petició.

Articles relacionats