Java Mit Jsoup einloggen und geschützte Seite auslesen

violentviper

Lt. Commander
Registriert
Mai 2008
Beiträge
1.690
Hallo,

ich möchte mit Java ein kleines Übungsprogramm schreiben, da ich meine eher schwachen Java Kenntnisse verbessern möchte. Und zwar möchte ich bei einem Browserspiel, eine Seite mit zurückgelegten Feldern aller Spieler auslesen.
An diese Seite komme ich natürlich nur ran, wenn ich mit meinem Account eingeloggt bin.

Dazu habe ich mir die Bibliothek Jsoup angeschaut. Nun muss ich so wie es scheint einen Cookie setzen. Bei Stackoverflow fand ich folgendes Beispiel, dieses funktioniert bei mir aber leider nicht.

Ich werde immer wieder auf die Haupturl verwiesen, und komme nicht an die "geschütze" Seite der zurückgelegten Felder ran.

Code:
import java.io.IOException;

import org.jsoup.Connection;
import org.jsoup.Connection.Method;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;



public class test {

	public static void main(String[] args) throws IOException {
		
		Connection.Response res = Jsoup.connect("http://stuniverse.de")  // Link der Hauptseite, wo auch der Login ist
			    .data("username", "username", "password", "myPW")  // Hier wären dann die Daten eingetragen
			    .method(Method.POST)
			    .execute();

			Document doc = res.parse();
			String sessionId = res.cookie("PHPSESSID");    // Name des Cookies
		
		
			Document doc2 = Jsoup.connect("http://stuniverse.de/main.php?p=db&s=fl")  // das wäre der Link zu den Feldern
				    .cookie("PHPSESSID", sessionId)
				    .get();
		
System.out.println(doc2); // Hier sollten dann im Optimalfall die Seite mit den Feldern ausgedruckt werden
			
	}

}


Ich hab auch schon andere Beispiele probiert, aber leider haut es einfach nicht hin. Vielleicht kann mir jemand auf die Sprünge helfen.
 
Schau dir mal das HTML der Seite an, dann wirst du feststellen, dass der Name für das den Username login ist. Passwort heißt einfach nur pass. Außerdem müssen diese Daten an die main.php geschickt werden, wenn du das änderst sollte es gehen.
 
Danke, du bist genial! Es funktioniert nun reibungslos.
Da wäre ich ehrlich gesagt nicht draufgekommen. Nun kann die eigentliche Arbeit beginnen *g
 
Zurück
Oben