Păstrați un agent Ruby Mechanize pentru fiecare sesiune proxy
Configurați o singură dată proxy-ul unui agent Ruby Mechanize, refolosiți-l pentru cererile înrudite și limitați deliberat starea cookie-urilor și conexiunile persistente.
Dacă sarcina este verificarea răspunsurilor HTTP și urmărirea legăturilor obișnuite, un browser complet nu este întotdeauna necesar. Ruby Mechanize expune proxy-ul pe agentul care efectuează acele cereri:
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
endAceasta presupune că biblioteca mechanize este încărcată. Pentru o verificare permisă a unei pagini publice fără autentificare proxy, lista de proxy-uri HTTP oferă valori gazdă/port potrivite pentru exemplu. Metoda proxy acceptă, de asemenea, un nume de utilizator și o parolă ca al treilea și al patrulea argument opțional atunci când endpoint-ul le cere.
Refolosiți agentul configurat pentru cererile care aparțin aceleiași sesiuni de navigare. Acesta transportă cookie-uri și istoric, precum și setări de rețea. Schimbarea proxy-ului de ieșire nu creează în sine o identitate nouă și nu aruncă un cookie de autentificare.
Pentru mai multe sesiuni proxy, dați fiecăreia propriul agent în loc să schimbați un agent partajat în timp ce lucrul este în curs. Biblioteca documentează și nume unice de conexiune atunci când sunt necesare conexiuni SSL separate; numele constructorului din exemplu face această alegere explicită.
Gruparea verificărilor URL înrudite după proxy poate reduce reconfigurarea inutilă. Păstrați rezultatul asociat rutei și URL-ului care l-au produs, inclusiv redirecționările și răspunsurile de eroare.
Mechanize nu reproduce execuția JavaScript a browserului. Folosiți un browser real atunci când comportamentul testat depinde de scripturi, de randare sau de autentificare specifică browserului. O preluare HTTP reușită prin proxy răspunde la întrebarea mai îngustă: că acest agent a putut face acea cerere.