Ha a feladat HTTP-válaszok ellenőrzése és hétköznapi hivatkozások követése, nem mindig kell teljes böngésző. A Ruby Mechanize a proxyt azon az ügynökön teszi elérhetővé, amely ezeket a kéréseket végrehajtja:

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

Ez feltételezi, hogy a mechanize könyvtár betöltődött. Engedélyezett nyilvános oldal ellenőrzéséhez proxy-hitelesítés nélkül a HTTP-proxy lista megfelelő host/port értékeket ad a példához. A proxy metódus opcionális harmadik és negyedik argumentumként felhasználónevet és jelszót is elfogad, ha a végpont megköveteli.

Használja újra a beállított ügynököt az ugyanabba a böngészési munkamenetbe tartozó kérésekhez. Cookie-kat és előzményeket, valamint hálózati beállításokat hordoz. A kimenő proxy cseréje önmagában nem hoz létre új identitást, és nem dobja el a bejelentkezési cookie-t.

Több proxy-munkamenet esetén mindegyiknek saját ügynököt adjon, ahelyett hogy egy közös ügynököt váltogatna munka közben. A könyvtár egyedi kapcsolatneveket is dokumentál, ha elkülönített SSL-kapcsolatokra van szükség; a példában szereplő konstruktornév ezt a választást teszi egyértelművé.

A kapcsolódó URL-ellenőrzések proxy szerinti csoportosítása csökkentheti a felesleges újrakonfigurálást. Tartsa az eredményt ahhoz az útvonalhoz és URL-hez kötve, amely létrehozta, beleértve az átirányításokat és a hibaüzeneteket.

A Mechanize nem utánozza a böngésző JavaScript-végrehajtását. Valódi böngészőt használjon, ha a vizsgált viselkedés szkriptektől, megjelenítéstől vagy böngészőspecifikus hitelesítéstől függ. A proxyn keresztüli sikeres HTTP-lekérés a szűkebb kérdésre válaszol: ez az ügynök képes volt arra a kérésre.

Kapcsolódó cikkek