Wenn die Aufgabe darin besteht, HTTP-Antworten zu prüfen und gewöhnlichen Links zu folgen, ist ein vollständiger Browser nicht immer nötig. Ruby Mechanize legt den Proxy auf dem Agenten offen, der diese Anfragen ausführt:

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

Dabei wird vorausgesetzt, dass die Bibliothek mechanize geladen ist. Für eine erlaubte Prüfung einer öffentlichen Seite ohne Proxy-Authentifizierung liefert die HTTP-Proxy-Liste passende Host-/Port-Werte für das Beispiel. Die Proxy-Methode akzeptiert außerdem Benutzername und Passwort als optionale dritte und vierte Argumente, wenn der Endpunkt sie verlangt.

Verwenden Sie den konfigurierten Agenten für Anfragen derselben Browsing-Sitzung weiter. Er trägt Cookies und Verlauf sowie Netzwerkeinstellungen. Der Wechsel des Ausgangs-Proxys erzeugt nicht von sich aus eine neue Identität und verwirft kein Login-Cookie.

Geben Sie bei mehreren Proxy-Sitzungen jeder einen eigenen Agenten, statt einen gemeinsamen Agenten während laufender Arbeit umzuschalten. Die Bibliothek dokumentiert zudem eindeutige Verbindungsnamen, wenn getrennte SSL-Verbindungen nötig sind; der Konstruktorname im Beispiel macht diese Wahl ausdrücklich.

Zusammengehörige URL-Prüfungen nach Proxy zu gruppieren kann unnötige Neukonfiguration verringern. Halten Sie das Ergebnis mit der Route und URL verbunden, die es erzeugt haben, einschließlich Weiterleitungen und Fehlerantworten.

Mechanize bildet die JavaScript-Ausführung eines Browsers nicht nach. Nutzen Sie einen echten Browser, wenn das getestete Verhalten von Skripten, Rendering oder browserspezifischer Authentifizierung abhängt. Ein erfolgreicher HTTP-Abruf über den Proxy beantwortet nur die engere Frage, dass dieser Agent die Anfrage ausführen konnte.

Ähnliche Artikel