Se il compito è controllare risposte HTTP e seguire collegamenti ordinari, un browser completo non è sempre necessario. Ruby Mechanize espone il proxy sull'agente che esegue quelle richieste:

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

Questo presuppone che la libreria mechanize sia caricata. Per un controllo consentito di una pagina pubblica senza autenticazione proxy, l'elenco di proxy HTTP fornisce valori host/porta adatti per l'esempio. Il metodo proxy accetta anche nome utente e password come terzo e quarto argomento opzionali quando l'endpoint li richiede.

Riutilizza l'agente configurato per le richieste che appartengono alla stessa sessione di navigazione. Trasporta cookie e cronologia oltre alle impostazioni di rete. Cambiare il proxy di uscita non crea di per sé una nuova identità né scarta un cookie di accesso.

Per più sessioni proxy, assegna a ciascuna il proprio agente invece di cambiare un agente condiviso mentre il lavoro è in corso. La libreria documenta anche nomi di connessione univoci quando servono connessioni SSL separate; il nome del costruttore nell'esempio rende esplicita questa scelta.

Raggruppare i controlli URL correlati per proxy può ridurre riconfigurazioni inutili. Mantieni il risultato associato alla rotta e all'URL che lo hanno prodotto, comprese redirezioni e risposte di errore.

Mechanize non riproduce l'esecuzione JavaScript di un browser. Usa un browser reale quando il comportamento in prova dipende da script, rendering o autenticazione specifica del browser. Un recupero HTTP riuscito tramite il proxy risponde alla domanda più stretta: che questo agente è riuscito a fare quella richiesta.

Articoli correlati