Webseite auslesen

Status
Nicht offen für weitere Antworten.

Sqwan

Mitglied
Schönen guten Tag

Soa... Ich habe ein größeres kleines Problem.
Und zwar beim verarbeiten einer Webseite. Das Auslesen einer Webseite an sich funktioniert mittlerweile. Jedoch habe ich dies an einer Testseite versucht, die nicht Passwortgeschützt ist. Meine jetztige seite ist jedoch passwort geschützt. Wenn ich nun versuche zu dem link zu Connecten geht das schief, weil ich nicht eingeeloggt bin.

Hat jemand eine Ahnung wie ich sowas realisieren kann, das ich mich vorher einlogge? bzw das sich der jeweilige User per Passwort einloggen kann?

Kann ich das vllt iwie so machen, das ich einfach den aktuellen browser auslese?
Das wäre dann die notlösung wenn es nicht anders geht...
Weil eigendlich sollten die informationen ja ohne browser für der User verarbeitbar sein!!!

MFG Sqwan
 

sparrow

Top Contributor
Wie genau ist denn die Seite passwortgeschützt?
Fragt der Browser nach einem Passwort (.htaccess) oder muss man sich auf der Webseite eibloggen?
 

Sqwan

Mitglied
Mann muss sich auf einer Webseite einloggen... via php.
Das heist ich habe auf der Seite ein Password feld und ein feld text. Der inhalt wert mit einem submitbutton an eine Logindatei weitergesendet. Die datei vergleicht den usernamen und das Passwort mit dem in der Datenbank und wenn erfolgreich eingloggt wurde, speichert es den aktuellen loginzustand so wie loginzeit in einr session. Zusätzlich wird auch immer die sessionsid gespeichert. Nach jeder aktion wird die datenbank auf den neusten stand gebracht. Das heißt datenbank und sessions sind immer gleich.

Ein direkter zugriff auf die DB ist nicht möglich... Aus sicherheitsgründen darf nur vom server auf die DB zugegriffen werden. Das passwort wird als MD5 gespeichert.
Das feld für das Passwort heißt pwd und für den nutzernamen user...

Ich denke das sind alle wichtigen Informationen über den aufbau der seite...
MFG Sqwan
 

ms

Top Contributor
Dann handelt es sich wohl um Form-Based Authentication. Ich nehmen an, es wird bei erfolgreichem Login ein temporäres Cookie angelegt bzw. bei deaktivierten Cookies könnte es sein, dass die SessionId per URL-Rewrite für jeden Link mitgeneriert wird. Wie liest du denn die Website aus? Verwendest du eine Bibliothek die ev. mit Cookies umgehen kann? Oder musst du das alles per Hand machen? Dann würde ich mal Cookies deaktivieren.

ms
 

Sqwan

Mitglied
Mit Cookis habe ich nichts am hut. Und auch die sessionsid schicke ich nicht in jedem link mit...
Ich lasse mir jedes mal eine neue generieren und vergleiche die mit der alten... wenn se anders ist logge ich aus...
Über die sessionsid werde ich nicht zugreifen können. Ich denke ich werde mich iwie neu einloggen müssen mit java.
und mich dann über die links durch die seite navigieren... das problem ist nur das ich nicht weiß wie ich mich neu einlogge... Was aber eigendlich gehen muss, da browser ja auch in einer sprache geschrieben werden müssen... Das heißt das es auch eine möglichkeit geben muss sich einzuloggen...

MFG Sqwan
 

ms

Top Contributor
Entweder verstehe ich dich nicht oder du mich nicht.
Du schickst einmal das Login-Formular ab, bekommst eine Sitzungscookie und kannst danach alle Seiten, die nur im eingeloggtem Zustand navigierbar sind, aufrufen.
Warum jedesmal anmelden?

ms
 

Sqwan

Mitglied
:-D ich glaube auch wir reden aneinander vorbei...
Also mal ganz simpel. Ich schicke das formular ab bzw die eingegebenen daten.
Diese werden dann von einem PHP script ausgewertet. Ist die auswertung positiv, so wird eine neue session angelegt.
In dieser session speicher ich den Loginzustand als true ab. danach leite ich auf eine seite start.php weiter.
aus dieser seite wird nach jedem klick geprüft ob der loginzustand true ist. Wenn ja darf man den inhalt sehen. wenn nein wird wieder auf die startseite zurück gesetzt. Die session mit sammt der sessionsid ist auf keine art und weise für den user erreichbar.
 

ms

Top Contributor
Sqwan hat gesagt.:
In dieser session speicher ich den Loginzustand als true ab. danach leite ich auf eine seite start.php weiter.
aus dieser seite wird nach jedem klick geprüft ob der loginzustand true ist. Wenn ja darf man den inhalt sehen. wenn nein wird wieder auf die startseite zurück gesetzt. Die session mit sammt der sessionsid ist auf keine art und weise für den user erreichbar.
Irgendwie widersprichst du dir. Zuerst speicherst du den Loginzustand in der Session aber eigentlich hast du als User gar keinen Zugriff darauf. ???:L

Auch verstehe ich noch nicht deine Rolle in deiner Anforderung. Du bist der Client, du leitest gar nichts weiter, das macht der Server.

Wenn ich eine Website auslese greife ich zb über URLConnection/HttpClient/HttpUnit darauf zu. Da habe ich keine Möglichkeit irgendwas in der Session zu speichern. Ich bin der Client der lediglich per HTTP mit dem Server kommunizieren kann. Ich weis nicht einmal, ob auf dem Server im Hintergrund PHP/ASP/JSP/Perl... oder sonstwas läuft, interessiert mich eigentlich auch nicht.

Tatsache ist aber, dass es temporäre Cookies gibt, in der üblicherweise die SessionId abgelegt wird. Auf diese habe ich Zugriff und anhand dieser wird eine Sitzung identifiziert.

ms
 

Sqwan

Mitglied
Also auf ein neues...
Ich betreibe eine Webseite. Diese ist in PHP geschrieben. Also habe ich auch einen Server. Der server parst die php-dateien. Jetzt zu meinem PHP-skript:
Code:
<form method="post" action="login.php">
    <input pwd>
    <input user>
    <input button>
</form>

so sieht das login-formular meiner seite in sehr vereinfacht aus.
Wenn ich jetzt den butoon drücke wir mein formular abgesendet. login.php verarbeitet.

in etwa so:

Code:
<?php
    session_start();
    $sql="SELECT user FROM user_tab WHERE user='".$_POST["user"]."';
    vergleich von allem...
    if(alles okay und der user und pwd richtig)
    {
         $_SESSION["logged"] = 1;
         header(...);
    }
?>

soa... und schon ist der user so lange eingeloggt bis er logout drückt und $_SESSION["logged"] auf 0 gesetzt wird
oder bis die sessionsids nicht mehr stimmen und die session abgelaufen ist.

zu beginn der anderen seiten wird dann immer abgefragt ob $_SESSION["logged"] noch true ist.

Das ist die geschichte mit meinem Webserver und allem was sich darauf abspielt.
Der User kriegt ausschließlich die seiten zu gesicht. Mit den sessions hat der nichts am hut.

Jetzt kam jedoch der Wunsch von einigen Usern, die ganzen sachen auch in eifacher textform browser unabhängig nutzen zu können und die wichtigen sachen (Kommt dann ein filter rein, mit dem der user navigieren kann, weiß noch nicht genau wie) in einer TXT datei zu speichern. Alles ohne die seite sehen zu können. Das heißt er gibt ein suchwort ein, und die seite wird auf diese suchwörter untersucht und speichert das dann beliebig in txt dateien ab.

Das heißt für mich, das ich losgelöst vom server eine anwendung brauche, die sich wie bei browser auf meiner seite einloggt (mit den jeweiligen userdaten) und dann den inhalt zeigt.

Im endefeckt brauche ich ale wie bisher ein login formular, mit dem ich mich einlogge, und dann den ganzen html-quellcode bekomme um ihn dann zu analysieren. so wie ein kleiner browser in etwa, nur ohne umwandlung des Quellcodes und anderem schnickschack wie bildern oder so.
 

ms

Top Contributor
:shock:

Ok, du betreibst diese Website und willst auch gleichzeitig einen Java-Client dafür schreiben.
Das Prinzip habe ich dir schon erklärt. Daran ändert sich nichts.

ms
 

Sqwan

Mitglied
ms hat gesagt.:
Ok, du betreibst diese Website und willst auch gleichzeitig einen Java-Client dafür schreiben.
Das Prinzip habe ich dir schon erklärt. Daran ändert sich nichts.

Soa...genau das meine ich. Und ich denke das Prinzip das du meinst ist folgendes:

ms hat gesagt.:
Dann handelt es sich wohl um Form-Based Authentication. Ich nehmen an, es wird bei erfolgreichem Login ein temporäres Cookie angelegt bzw. bei deaktivierten Cookies könnte es sein, dass die SessionId per URL-Rewrite für jeden Link mitgeneriert wird. Wie liest du denn die Website aus? Verwendest du eine Bibliothek die ev. mit Cookies umgehen kann? Oder musst du das alles per Hand machen? Dann würde ich mal Cookies deaktivieren.

hmm... also leider habe ich noch nie mit sessions und sowas in java gearbeitet...
Kannst du mir vllt einen tipp geben, nach was ich suchen soll, damit ich auf mein problem zuarbeite und mich nicht distanziere? Weil iwie steige ich da nicht so ganz durch... Ich weiß nicht mal ob die per Cooki gespeichert werden oder per URL-Rewrite mitgeneriert werden, und schon garnicht weis ich ob das von bedeutung ist oder wo ich das problem jetzt anpacken soll.

MFG Sqwan
 

thE_29

Top Contributor
Das kannst du auch ganz normal machen ;)

Du holst dir die Verbindung und sagst sowas in der Art:

Code:
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestMethod("POST");
    connection.setDoOutput(true);
    connection.setUseCaches(true);
    PrintStream post = new PrintStream(connection.getOutputStream());
    //stoppelt den Post zusammen
    post.println("ELEMENTE ZUM SCHREIBEN");
    post.flush();
    post.close();

Wobei die Elemente sowas ist wie pwd=HALLO?user=schlumpf, etc..
So wie es in der Titelleiste auch ist!
 

Sqwan

Mitglied
hmmmmm.... also ich habe das wie du ges gepostet hast jetzt mal einfach übernommen...
Ein verbindung findet auch stadt.
Jedoch steige ich bei
Code:
post.println("ELEMENTE ZUM SCHREIBEN");
überhaupt nicht durch...
Ich weiß garnicht was in die klammern muss. In google habe ich dazu auch nichts gefunden da println natürlich sehr weitläufig ist und auch in verbingung mit PrintStream komme ich zu keinen brauchbaren ergebniss.
Vllt kann mir da noch mal jemand einen hinweiß geben...

Naja... Nun ist aber auch direkt nicht in weiterer fehler aufgetreten, das aber nur mit der Visualisierung zusammen hängt.
Also ich habe einen Button. Wenn man den Klickt soll verbunden werden. Jeoch kann ich im ActionListener nicht die methode aufrufen. Ich kriege ein problem mit den Exceptions...
wenn ich throws MalformedURLException, IOException, ProtocolException dann an actionPerformed(ActionEvent e) schreibe, sagt er mir aber auch das ich das nicht darf...

Gibt es da eine möglichkeit dies zu umgehen...
MFg und Herzlichen dank schon mal
Sqwan
 

thE_29

Top Contributor
Naja, du schreibst das hinein was du oben in der Adresszeile hättest!

Wenn du bei google nach asdf suchen würdest, müsstest du das hineinschreiben

post.println("search?hl=de&q=asdf&btnG=Google-Suche&meta=");

Dann würde er die Abfrage schicken!

Zb hier auch beschrieben: http://www.javaworld.com/javatips/jw-javatip34.html

Nachtrag: Wenn das ganze aber zuviel wird, würde ich dir ein Framework empfehlen!

Zb HTTPClient: http://www.innovation.ch/java/HTTPClient/getting_started.html hier schreibt man die Post Daten in ein NVPair Objekt rein (Name und Wert).

Es ist halt einfach sauber getrennt.
 

Sqwan

Mitglied
search?hl=de&q=asdf&btnG=Google-Suche&meta=

wenn ich das nun so absende, wird dan "de" und "asdf" und "Google-Suche" per post übermittet? weil normalerweise ist das was nun da steht ja die absendemethode für ein GET element... zumindest in php.
Und kann ich denn abfragen ob der login erfolgreich war? Weil dann kann ich damit mal ein bischen probieren.

Das Framework würde ich auch gerne mal probieren... was muss ich denn dafür importieren?
 

Sqwan

Mitglied
grrr... langsam verzweifel ich.
Es will einfach nicht funktionieren... Nichtmal bei google...

Code:
        protected static HttpURLConnection mkConnection() throws MalformedURLException, IOException, ProtocolException
	{
		URL src = new URL("http://www.google.de/index.php");
			
		HttpURLConnection connection = (HttpURLConnection) src.openConnection();
	    connection.setRequestMethod("POST");
	    connection.setDoOutput(true);
	    connection.setUseCaches(true);
	    PrintStream post = new PrintStream(connection.getOutputStream());
	    //stoppelt den Post zusammen
	    post.println("http://www.google.de/search?hl=de&q=hallo&btnG=Google-Suche&meta=");
	    System.out.println(connection.getResponseMessage());
	    System.out.println(connection.getResponseCode());
	    post.flush();
	    
	    InputStream in = connection.getInputStream(); 
	    OutputStream out = new FileOutputStream("file_copy.html");
	    byte buf[] = new byte[1024];
	    int x = 0;
	    while ( ( x = in.read(buf,0,buf.length) ) != -1)
	    {
	      out.write(buf,0,x);
	    }
	    in.close();
	    out.close();
	    
	    post.close();
	    
	    return connection;
	}
so sieht meine "methode" jetzt aus... bei google kriege ich eine extension, bei meiner seite und bei ein paar seiten auf denen ich registriert bin kriege ich auch nur die startseite ausgelesen mit dem quellcode...

MFG Sqwan
 

Sqwan

Mitglied
:cry: es geht einfach nicht weiter?!?!
Ich kriege es nicht hin das er sic einloggt. nur den verbindungsaufbau per buttonclick habe ich hinbekommen...

Kann mir vllt noch mal jemand helfen bei der sache mit dem einloggen?!?!

MFG Sqwan
 
A

Andreas E

Gast
Hallo,
//stoppelt den Post zusammen
post.println("http://www.google.de/search?hl=de&q=hallo&btnG=Google-Suche&meta=");
System.out.println(connection.getResponseMessage());
System.out.println(connection.getResponseCode());

Dein Fehler liegt darin, dass du die Adresse im Post nicht mitsenden darfst!! Das müsste so lauten:
post.println("search?hl=de&q=asdf&btnG=Google-Suche&meta=");

MfG
Andreas
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ernesto95 HTTP Mit JavaScript erzeugte dynamische Webseite auslesen und nach einem Schlüsselwort durchsuchen Allgemeine Java-Themen 6
torresbig Url nach Webseiten-Login auslesen & Daten an Webseite senden Allgemeine Java-Themen 9
x46 Webseite in Java auslesen Allgemeine Java-Themen 2
C Webseite auslesen Allgemeine Java-Themen 3
X HTTP Auslesen der Ergebnisse von einer Webseite und in eine Liste packen Allgemeine Java-Themen 1
M HTML-Code von Webseite über Browser oder Console auslesen?? Allgemeine Java-Themen 5
I Webseite auslesen (welche mittels Javascript Inhalt einbindet) Allgemeine Java-Themen 4
T Zeit von einem Server/Webseite auslesen und in eigener GUI anzeigen Allgemeine Java-Themen 6
I Vom Monolith zu Services in einer Webseite Allgemeine Java-Themen 1
S HTML einer Webseite 1:1 so bekommen wie es auch der Browser anzeigt? Allgemeine Java-Themen 14
Lukasbsc JDA-Bot Webseite aufrufen Allgemeine Java-Themen 0
J JSON Daten von einer Webseite erhalten Allgemeine Java-Themen 2
L Echtzeitdaten aus einer Webseite ziehen mit Java Allgemeine Java-Themen 19
M Login in eine Webseite mit Java Allgemeine Java-Themen 3
L String von Webseite herunterladen Allgemeine Java-Themen 4
R Login auf einer SSL-Webseite Allgemeine Java-Themen 7
L Jsp: Vorherige Webseite ermitteln Allgemeine Java-Themen 4
D Java Script webseite Asufüllen Allgemeine Java-Themen 3
X Applet läuft nicht, Applet in Webseite einbinden Allgemeine Java-Themen 4
D Webseite wird nicht immer komplett ausgelesen Allgemeine Java-Themen 11
U Servlet in Webseite einbinden Allgemeine Java-Themen 1
W Webseite öffnen und Link anklicken Allgemeine Java-Themen 2
C Komponenten einer WebSeite Allgemeine Java-Themen 4
S Mittels eines Applets Bilder generieren die in einer Webseite angezeigt werden..? Allgemeine Java-Themen 8
Taschenschieber Webseite im Browser öffnen Allgemeine Java-Themen 3
L Session auf einer Webseite halten Allgemeine Java-Themen 6
G Mit Java und HTTPClient auf Webseite einloggen Allgemeine Java-Themen 4
T Webseite (HTML) Parser gesucht Allgemeine Java-Themen 8
D Bilder einer Webseite herunterladen Allgemeine Java-Themen 2
M Webseite speichern Allgemeine Java-Themen 3
R Von Java aus Browser Fenster oeffnen und Webseite ausgeben? Allgemeine Java-Themen 2
U Communityfunktionen für vorhandene Webseite Allgemeine Java-Themen 2
L Anfrage an eine Webseite Allgemeine Java-Themen 5
S Fehler beim Einlesen einer Webseite mit 1.4 Allgemeine Java-Themen 3
C Webseite laden aber mit Cookie Allgemeine Java-Themen 2
A "Webseite-Inhalt" ins Arabische&Französische ü Allgemeine Java-Themen 2
T Webseite öffnen per Knopfdruck Allgemeine Java-Themen 2
S Über ein String eine Webseite in eine Datei umleiten Howto? Allgemeine Java-Themen 8
L Input/Output Email mit großer Pdf Anhang auslesen? Allgemeine Java-Themen 7
K Bildschirm auslesen/ Text erkennen Allgemeine Java-Themen 5
S .exe Datei/Programm auslesen? Allgemeine Java-Themen 2
T INI - Einträge auslesen Allgemeine Java-Themen 6
H Auslesen eines (LDAP-)Attributs in Active Directory Allgemeine Java-Themen 2
O PDF auslesen und verändern, was ist besser iText oder PDFBox ? Allgemeine Java-Themen 9
Robertop Status von Caps- und NumLock auslesen Allgemeine Java-Themen 1
Master3000 Java Konsole über Buffered Reader Zeilenweise auslesen ? Allgemeine Java-Themen 26
G Mac Package auslesen Allgemeine Java-Themen 17
W Versionsnummer auslesen - Regex ist zickig Allgemeine Java-Themen 2
F Junit Test + Cucumber - JSON auslesen und in einem weiteren Schritt nutzen Allgemeine Java-Themen 0
M verschiedene Dokumente auslesen Allgemeine Java-Themen 1
Gaudimagspam CSV-Datei auslesen in Java Allgemeine Java-Themen 7
L Dateien richtig auslesen Allgemeine Java-Themen 6
F WireGuard Status auslesen Allgemeine Java-Themen 3
B .txt Datei erstellen und auslesen bzw. schreiben Allgemeine Java-Themen 6
I DOM-Parser - Element im Element an bestimmten Stellen auslesen Allgemeine Java-Themen 1
N Txt Datei auslesen. Allgemeine Java-Themen 5
O xlsx Datei auslesen mit POI Apache liest keine LEERZELLEN Allgemeine Java-Themen 6
O xlsx Datei auslesen mit POI von Apache wirft seltsamen Fehler. Allgemeine Java-Themen 11
J Information von getSource() Objekt auslesen Allgemeine Java-Themen 1
V EMail, Attachments auslesen von einer Email Allgemeine Java-Themen 0
K Aus String zwei Jahreszahlen auslesen Allgemeine Java-Themen 18
E CSV mit Text und Binärdaten auslesen Allgemeine Java-Themen 7
M Html Seite auslesen Allgemeine Java-Themen 16
S Hilfe bei dem Auslesen einer YAML Datei Allgemeine Java-Themen 8
J Fenstergröße eines anderen Programmes auslesen Allgemeine Java-Themen 9
B Cookie auslesen Allgemeine Java-Themen 3
B Input/Output Programm zum Auslesen/Beschreiben von Textdateien, wie Geschwindigkeit erhöhen? Allgemeine Java-Themen 18
J Variablen Mehrere int-variablen in txt abspeichern und danach wieder auslesen Allgemeine Java-Themen 1
J Daten aus Website-Quelltext auslesen Allgemeine Java-Themen 62
J Teil einer URL auslesen Allgemeine Java-Themen 13
denny86 NetBeans Ordnernamen rekursiv auslesen und in Variable verarbeiten Allgemeine Java-Themen 38
C Atfx mit Hilfe von OpenAtfx auslesen Allgemeine Java-Themen 1
C Position von Pixeln in Bilder auslesen Allgemeine Java-Themen 2
M aktive WLAN Teilnehmer auslesen? Allgemeine Java-Themen 6
X JSONObject auslesen und in HashMap hinterlegen Allgemeine Java-Themen 16
S Kann man mit Java auf einem lokalen PC/Mac Benutzergruppen auslesen und Rechte ändern? Allgemeine Java-Themen 11
D Best Practice Gesamten Bildschirminhalt auslesen und Email schicken sobald kein Pixel sich ändert Allgemeine Java-Themen 11
A Erste Schritte Daten aus einer Website auslesen Allgemeine Java-Themen 7
J Bestimmte Zeile aus Textdatei auslesen Allgemeine Java-Themen 18
G Aus JTextField Zahlen auslesen und random generieren Allgemeine Java-Themen 10
M Tastatureingabe von Sondertasten auslesen Allgemeine Java-Themen 6
C Auslesen auslösen über Button-Click Allgemeine Java-Themen 8
M xlsx File auslesen Exception occured Allgemeine Java-Themen 13
U OOP Warum kann ich aus meiner Methode keinen String auslesen Allgemeine Java-Themen 4
J Auslesen Daten Java/HTML Allgemeine Java-Themen 15
4a61766120617274697374 PDF iText Wort Koordinaten auslesen Allgemeine Java-Themen 1
KeVoZ_ Bestimmte Zeile aus Console finden & auslesen Allgemeine Java-Themen 2
T Url aus txt Datei auslesen und öffnen? Allgemeine Java-Themen 4
N Werte aus Hashmap auslesen und übertragen Allgemeine Java-Themen 8
KeVoZ_ Properties mit String auslesen Allgemeine Java-Themen 11
I HTML einer Website auslesen liefert nur head Allgemeine Java-Themen 6
D Aktuell installierte Java Version auslesen unter Windows Allgemeine Java-Themen 5
M Parameter auslesen im Servlet Allgemeine Java-Themen 0
M Input/Output USB Geräteinstanzkennung auslesen Allgemeine Java-Themen 3
W 2D-Grafik Erstellungsdatum JPG direkt aus Header (EXIF) auslesen. Allgemeine Java-Themen 5
M Daten aus anderen Programmen auslesen Allgemeine Java-Themen 2
T Datei Byteweise auslesen Allgemeine Java-Themen 1
T Datentypen MNIST Datenbank auslesen (.gz) Allgemeine Java-Themen 0
T Ini Datei auslesen Allgemeine Java-Themen 3
J Temperatur aus bytes auslesen. Allgemeine Java-Themen 13

Ähnliche Java Themen

Neue Themen


Oben