HTML Quelltext von Trackliste oder php Seite

Zelnehlun

Grünschnabel
Hey,

ich habe mit verschiedenen Programmen versucht von den folgenden 2 URLs den Quelltext auszulesen (so wie im Browser).

http://www.techno4ever.fm/t4e/tracklist.html
http://www.techno4ever.fm/t4e/track.php

Das Ganze klappt auch problemlos, aber genau an der Stelle an der die Tracks stehen sollten steht im Quelltext ein Error 404 oder ähnliches.
Bei der php Seite wurde mein Programm anscheinend auf die Startseite umgeleitet.

Im Browser waren die Tracks problemlos lesbar.

Gruß Zelnehlun
 
Also auf der tracklist.html erhalte ich auch ein dickes fettes 404. Ich gehe davon aus das die nötigen Daten in einer Session oder via POST übermittelt werden. Müsste man mal mit nem HTTP-Sniffer checken.
Was die track.php angeht erhalte ich einen kleinen Lauftext und den dazu passenden Code.

Vielleicht wäre es nicht schlecht wenn du uns mal etwas Codes postest was du bis jetzt hast. Auch müsstest du erstmal analysieren wo die tracklist.html ihre Daten bekommt wenn sie was anzeigen soll / aufgerufen wird.
 
Java:
URL url = new URL("http://www.techno4ever.fm/t4e/track.php");
	        InputStream in = url.openStream();
	        BufferedReader br = new BufferedReader(new InputStreamReader(in));
	        String s;
	        
	        while ((s = br.readLine()) != null){
	        	System.out.println(s);
	        }

Ich habe es auch mit einem Scanner und diversen Methoden versucht, viele habe ich hier im tutorials Forum gefunden.

http://www.tutorials.de/java/310376-quelltext-aus-einem-htmldocument-auslesen.html

Hast du über ein Java Programm den richtigen Quelltext der track.php seite gefunden?
 
Also ich habe das ganze jetzt mal nur als schnelles RAW-Beispiel gemacht ... aber es erfüllt seinen Zweck :
Java:
import java.io.*;
import java.net.*;
public class Techno
{
	public static void main(String[] args) throws Exception
	{
		Socket sock=new Socket("techno4ever.fm", 80);
		PrintStream out=new PrintStream(sock.getOutputStream());
		out.println("GET http://www.techno4ever.fm/t4e/track.php HTTP/1.0");
		out.println("User-Agent: Mozilla");
		out.println("Host: www.techno4ever.fm");
		out.println("");
		BufferedReader in=new BufferedReader(new InputStreamReader(sock.getInputStream()));
		String line="";
		while((line=in.readLine())!=null)
		{
			System.out.println(URLDecoder.decode(line, "UTF-8"));
		}
		in.close();
		out.close();
		sock.close();
	}
}

Was mir an deinem Versuch auffällt : du verwendest lediglich ein URL.openStream(); ... du solltest hier aber lieber mit URL.openConnection() arbeiten und die erhaltene URLConnection mit instanceof HttpURLConnection prüfen um dann damit arbeiten zu können.

Das war aber noch nicht der Hauptgrund warum du nur Mist bekommen hast ...

Ich habe so einiges ausprobiert da ich mich auf dem Gebiet sehr gut auskenne und habe herausbekommen das der Server scheinbar mit einem Modul den User-Agent-Header prüft. Ich weis nicht genau was dieses Modul erwartet ... jedoch reicht ein einfaches Mozilla aus um es zu überlisten.

Wenn ich jedoch die HTML Seite aufrufe ... und sei es auch nur aus dem Browser in dem ich auf den Link klicke erhalte ich eine große , weiße Fehlermeldung die mir NOT FOUND 404 an den Kopf wirft ... was diese Seite also nun genau soll weis ich nicht ... vielleicht erklärst du uns wie man von der Startseite darauf kommt und was man da sehen müsste.

Wie du genau mit HttpURLConnection umgehst findest du im Netz ... da ich jetzt erlich gesagt um diese Zeit keien Lust habe mich damit zu beschäftigen auch wenn es das ganze vereinfachen würde.
 
Vielen dank für die ausführliche Antwort und deine investierte Zeit, mir genügt der funktionierende Code schon er stellt die Grundlage meines kleinen Projektes dar ;)

Gruß Zelnehlun
 
Wie gesagt : ich würde es noch etwas verschönern mit HttpURLConnection oder gleich Apache-HTTP-Commons weil mein Beispiel nun wirklich nur RAW ist ... aber naja wenns reicht ist gut.
Makiere dann den Thread bitte als erledigt.
 
Zurück