Mantieni un agente Ruby Mechanize per ogni sessione proxy
Configura il proxy di un agente Ruby Mechanize una volta, riutilizzalo per le richieste correlate e limita deliberatamente lo stato dei cookie e le connessioni persistenti.
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
endQuesto 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.