wie auf einer Website über Java anmelden?
-
05-07-2019 - |
Frage
Ich habe mehrere Möglichkeiten versucht, auf eine Website durch Java einzuloggen. Ich habe watij verwendet, Htmlunit usw. aber wegen nicht so vertraut mit diesen Substanzen, ich bin nicht in der Lage erfolgreich anmelden.
Kann mir jemand sagen, im Detail, wie durch Java anmelden
Um genauer zu sein, möchte ich den Quelltext der Seite, auf der ORKUT und möchten sich einloggen, die nach der Anmeldung kommt.
Lösung
Ihre besten Chancen, solche Dinge zu tun und in dem realen Welt Web zu überleben sind mit Selenium-RC.
Im Grunde, was Sie tun ist, um fernsteuern Ihren Browser, alles zu tun, die Sie manuell (mit Ausnahme von Dateiuploads) tun können.
Viele Male habe ich dieses Muster verwendet:
- Melden Sie sich mit Selen
- Nehmen Sie die Cookies
- Weiter mit meiner Lieblings-HTTP-Bibliothek.
Andere Tipps
Die Antwort hängt davon ab, wie die Website versucht, Sie zu authentifizieren:
- Haben Sie einen Benutzernamen und Passwort in den HTTP-Headern (Grund Auth) setzen müssen?
- Oder müssen Sie ausfüllen und ein Formular einreichen den Benutzernamen und das Passwort enthalten?
Für entweder Ich würde empfehlen, commons-Httpclient, obwohl letztere Screen-Scraping-Ansatz immer chaotisch ist programmatisch zu tun.
Für die Standardauthentifizierung, werfen Sie einen Blick auf Httpclient Authentication Führer .
Für die Formularauthentifizierung, müssen Sie die HTML-Quelle der Seite zu überprüfen, um zu verstehen,
- Die URL wird das Formular eingereicht
- Was sind die Namen der Parameter vorzulegen sind
Für Hilfe, wie ein Formular in Httpclient zu unterbreiten, werfen Sie einen Blick auf die Dokumentation auf der POST-Methode .
Die Httpclient-Website enthält auch eine rel="noreferrer">.
Warum Sie über Java anmelden versuchen, warum nicht nur cURL verwenden? Gibt es etwas Bestimmtes Sie erreichen wollen?
Orkut benutzt Google Auth einzuloggen. Mein Vorschlag ist, einen HTTP-Debugger wie Fiddler zu verwenden, um den Verkehr während der Anmeldung zu beobachten. Wahrscheinlich gibt es Cookies und Umleitungen, die repliziert werden müssen.
Im Allgemeinen
- Schauen Sie sich die Login-Formular, erhalten die Namen des Namens und Passwort-Feld und die Aktion, die die Form Beiträge zu
- Erstellen Sie eine POST-Anfrage an die Action-URL und übergeben Sie den Namen und das Passwort korrekt (zum Beispiel name = Benutzername und Passwort = PWD)
- War diese HTTPS (stellen Sie sicher, dass richtig zu tun)
- Wenn die Antwort ein SET-COOKIE im Header hat, stellen Sie sicher, dass die Cookie auf allen weiteren Anfragen senden
- Wenn die Antwort eine Umleitung hat, dann ein GET für die Umleitung, das Senden von Cookies gegebenenfalls
- (immer # 5 Looping, bis Sie nicht eine Umleitung erhalten)
Die Antwort, die Sie am Ende dieses erhalten ist die Seite Quelle.
Werfen Sie einen Blick auf diese:
http: // Code .google.com / apis / gdata / javadoc / com / google / gdata / client / http / AuthSubUtil.html http: // code.google.com/p/apex-google-data/source/browse/trunk/google_data_toolkit/src/classes/AuthSubUtil.cls
Sieht aus wie Code Google für ihre Dienste zu authentifizieren.