2 Stimmen

wie man eine formularbasierte Authentifizierung von curl oder wget aus aufruft

Ich möchte eine Url mit curl und wget aufrufen

Ich habe versucht wget --save-cookies cookies.txt --post-data 'user=foo&password=bar' http://server.com/Login

wget --load-cookies cookies.txt -p http://server.com/interesting/article.jsp

Aber das Login-Formular akzeptiert keine Postdaten, kann ich das irgendwie anders versuchen?

1voto

Mowgli Punkte 3282

Ich konnte eine Teillösung finden, indem ich Cookies mit wget lud.
Hier ist die Google Chrome-Erweiterung zum Exportieren von Cookies Chrome Google Export Erweiterung
diesen Cookie mit wget verwenden

  1. Installieren Sie die Google Chrome-Erweiterung.
  2. Anmeldung bei der Website über Google Chrome
  3. Cookie mit Chrome-Erweiterung exportieren
  4. Irgendwo kann derselbe Ort sein, an dem sich wget oder der Desktop befinden.
  5. Führen Sie nun folgenden wget-Befehl mit dem vollständigen Pfad zu cookies.txt aus

Exemple

wget -x --load-cookies C:\Users\Documents\GnuWin32\bin\cookies.txt http://example.com/some_interesting/article/1.html

Viel Glück

0voto

volferine Punkte 362

Für das Protokoll: Mowglis Lösung hat bei mir nicht funktioniert (kein Chrome in meiner Umgebung), also habe ich nach einigem Suchen das Problem gefunden: formularbasierte Authentifizierung setzt normalerweise Sitzungscookies, aber wget speichert sie nicht standardmäßig. Wenn man also einen Befehl wie

wget --keep-session-cookies --save-cookies /tmp/cookiefile --post-data='username=User&password=Pwd123' <login URL>

oder etwas sicherer

wget --keep-session-cookies --save-cookies /tmp/cookiefile --post-file creds <login URL>

wo die Datei creds würde das gleiche Paar enthalten username=User&password=Pwd123 (kein Zeilenende!) erfüllt die Aufgabe. Dann --load-cookies /tmp/cookiefile sollte von der Website akzeptiert werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X