# Download aus Internet



## eLogic (20. Apr 2011)

Guten Abend =)

ich habe ein Problem. ich möchte einen (mehrere) Downloads mittels einer Java Applikation von einer Seite laden.
Wenn ich folgenden Link aufrufe:

```
http://www.rappers.in/artist.php?id=239700&bdlid=95699
```
startet der Download Automatisch.

Wenn ich den Link jedoch Mit der App. ausführe. Bekomme ich sowas wie den HTML Source??

Brauche bitte Hilfe =(
Danke danke..


```
// Datei aus dem Internet Laden #################################

			String url = "http://www.rappers.in/beatdownload.php?bid=95699";
			File file =  new File ("c:/datei.mp3"); // es sollte eigentlich eine mp3 sein?

			java.io.BufferedInputStream in;

			try {
				in = new java.io.BufferedInputStream(new java.net.URL(url).openStream());
				java.io.FileOutputStream fos = new java.io.FileOutputStream(file);
				java.io.BufferedOutputStream bout = new BufferedOutputStream(fos,1024);
				byte[] data = new byte[1024];
				int x=0;
				while((x=in.read(data,0,1024))>=0){
					bout.write(data,0,x);
				}
				bout.close();
				in.close();
			} catch (Exception e) {System.out.println("FEHLER  BEIM  LADEN");}
```


----------



## eLogic (20. Apr 2011)

Hallo ich habe folgendes Problem..

Ich möchte einen Downloadmanager programmieren.
Diese ist durch ein php Skript oder so geschützt (um wahrscheinlich einen Zähler anzusprechen),
sodass ich keinen Direktlink zur datei habe..

Wenn ich im Browser auf den Link klicke öffnet sich das Downloadfenster.

Ist es überhaupt möglich diese Datei in einem Java programm zu laden??


Danke =)

Gruß  eLogic


----------



## maki (20. Apr 2011)

Habe die Threads mal zusammengeführt, da es sich offensichtlich um dasselbe Thema handelt.


----------



## eLogic (20. Apr 2011)

Wieso weiß denn keiner eine Antwort? =(


----------



## Michael... (20. Apr 2011)

Ich weiß die Antwort nicht, aber hinter der URL steckt ja keine Datei zum Download sondern ein php-Skript, das das Speichern anstößt.

Hab noch nicht versucht so eine URL per Stream in Java auszulesen. Was kommt denn da an?
Vermutlich der Code des Skripts!?

Ich denke (weiß es nicht), dass das was Du vorhast mit dieser URL so nicht funktioniert, da das Skript auf dem Server ausgeführt werden muss, damit der Download startet.

Wenn das Auslesen der URL den Skript Code liefert, könntest Du ja versuchen das Skript per Java zu analysieren und findest eventuell die URL der Datei. Viel Spaß dabei ;-)


----------



## Michael... (20. Apr 2011)

Der letzte Satz war Schmarrn, da ja vermutlich der in der URL übergebene Parameter dazu dient die Datei zu bestimmen --> das Skript muss ausgeführt werden.


----------



## eLogic (27. Apr 2011)

ja und wie führe ich das Skript aus??

Denken wir mal so.. 

Ich starte die Site und drücke auf den Download Button..
Es öffnet sich der Download Dialog von Windows.
Ich drücke Speichern unter.

Ist es nicht irgendwie möglich das im Hintergrund zu simulieren oder sonst wie??


----------



## Michael... (28. Apr 2011)

eLogic hat gesagt.:


> ja und wie führe ich das Skript aus??


Das Skript muss der Server ausführen.


eLogic hat gesagt.:


> Denken wir mal so..
> 
> Ich starte die Site und drücke auf den Download Button..
> Es öffnet sich der Download Dialog von Windows.
> Ich drücke Speichern unter.


Mit der Klasse Robot kann man die Maus steuern. Wenn Du die Buttons findest, kann man "automatisch" klicken.


eLogic hat gesagt.:


> Ist es nicht irgendwie möglich das im Hintergrund zu simulieren oder sonst wie??


Ich würde sagen: Nein.


----------



## Gelöschtes Mitglied 9001 (28. Apr 2011)

Das, was der Server hinter dieser URL liefert, ist ja nicht die eigentliche mp3-Datei, sondern eine HTML-Seite, die wiederum den eigentlichen Download startet (über JavaScript oder ein meta-Tag, habe ich mir nicht genau angesehen). Da der Browser JavaScript und HTML versteht, klappt das auch. 
(@Michael: dass es sich nebenbei noch um ein php-Skript auf dem Server handelt, hat damit nichts zu tun, wenn der Server nicht falsch konfiguriert ist, kommt man auch nicht an den Code des php-Skripts ran.)

Aber Dein Programm kann das natürlich nicht. 
Es gibt ja dort die Textzeile: "Falls der automatische Download in deinem Browser deaktiviert ist, klick hier:" und danach ein Direktlink. Wenn Dein Programm diesen Direktlink aufruft, dann kommt auch direkt die mp3-Datei. Also mußt Du den HTML-Code parsen und diesen Direktlink herausfischen.

Ob der Betreiber der Webseite allerdings damit so einverstanden ist, steht noch auf einem anderen Blatt.


----------



## eLogic (29. Apr 2011)

Auf dem Direktlink bekome ich nicht die mp3...

Also ist das ÜBERHAUPT nicht möglich?

Kann doch nicht sein das das nciht geht???


----------



## Cola_Colin (29. Apr 2011)

Zumindest auf einen kurzen Blick hin scheint das eher schwer machbar. Der Direktlink ist ebenfalls kein wirklicher Link zu der Datei, sondern wieder nur ein Skript. Ruft man den Direktlink direkt im Browser auf, so landet man auf der Downloadseite, kriegt also nicht einen Download.
Lade ich das ganze mit Opera, so kriege ich als Quelle:
[noparse]http://beats.rappers.in/download.php?u=1042865130542397000359716782&d=Andi_1994_-_Elctric_Guitar_(Geil_www.rappers.in.mp3[/noparse]

Der Link führt aber nur direkt auf die Hauptseite, wenn er direkt aufgerufen wird.
Ich würde vermuten, die wollen nicht, das wer die Daten direkt herunterlädt und haben dafür gesorgt, dass das nicht mal so eben möglich ist. Um das zu umgehen müsste man sich wohl damit beschäftigen, wie die das genau gemacht haben.


----------



## eLogic (6. Okt 2011)

Hello World,

Ja ich nehme alles in kauf, meinetwegen Programmiere ich einen neuen IE in *HD* :lol:
*Es kann ja nicht sein das es nicht möglich ist.*

*PC -> BROWSER -> SERVER -> BROWSER -> Und die Datei auf den Rechner speichern.*
Der Browser ist doch auch ein Programm.?!
Dann muss ich halt den Teil des Browsers implementieren der dafür zuständig ist, eine Session
auf dem Server von "Rappers.in" zu erzeugen, der sich mit den Logindaten anmeldet, das Skript auf dem Server ausführt und IRGENDWIE!, wie auch immer mit ihm kommuniziert und mir endlich die Daten Streamt.

Mit freundlichen Grüßen _und totaal in Hoffnung das jetz mal einer das hier liest der Ahnung davon hat.._ xD

eLogic


----------



## Jigga (6. Okt 2011)

du könntest dir mal htmlunit anschauen.das ist zum testen von websites und emuliert einen Browser. damit würdest du denke ich bestimmt an den DL-Link rankommen. nur weiß ich leider nicht, wie du dann die mp3 empfangen und speichern kannst, weil ich mich damit nicht auseinander gesetzt habe.


----------



## fastjack (6. Okt 2011)

Kurzes googlen 

Developer's Guide - Wie man aus Java mit einem PHP-Script kommuniziert


----------



## Jigga (6. Okt 2011)

und wie genau soll ihm das helfen? (ich nehme stark an: ) ihm gehört weder die seite,noch hat er zugriff auf die PHP-Dateien. 
ausserdem habe ich hier auch noch keinen ansatz gesehen,wie man mit java eine mp3 aus dem netz "empfangen und speichern kann"


----------



## fastjack (6. Okt 2011)

@Jigga lies Dir die Seite mal in Ruhe durch.

@edit natürlich passt das nicht sofort für MP3, ist aber ein Beispiel, wie man Strings empfängt. Da muß man natürlich noch nacharbeiten, aber es zeigt schon mal den Weg


----------



## Jigga (6. Okt 2011)

ich denke nicht,dass es den weg zeigt. die seite kenne ich,da ich mich selber vor kurzem damit auseinander gesetzt habe. er müsste dann ja auch irgendwoher die IDs bekommen?hört sich für mich relativ umständlich an.
was ich mir eher gedacht habe ist evtl eine socket geschichte, wo er die seite aufruft und dann die antwort (den download) einliest und irgendwo speichert.


----------



## eLogic (6. Okt 2011)

*An die IDs zu kommen ist gar kein Problem!*

Es wird der html code geladen, in der ja bereits alle ids drin stehen...
Das Filtern ist auch nicht wirklich Kunst. 

Allerdings habe ich was neues von der Site gefunden:
Hier beschreiben die wie die vorgehen:


> Um einen echten Besucher als Downloader zu
> verifizieren, verwenden wir einen Referrer- und einen IP-Check. Der Referrercheck übermittelt die zuletzt
> besuchte Seite in deinem Browser, in unserem Fall wird also geprüft, ob du wirklich gerade auf
> rappers.in surfst, und nicht den Link z.B. von einer anderen Webseite oder aus einer E-Mail heraus
> ...



Ich nehme die herausforderung an =)


----------



## maki (6. Okt 2011)

eLogic hat gesagt.:


> Ich nehme die herausforderung an =)


Das ist gut so, denn das wirst du auch müssen.

Hier wirst du keine Hilfe bekommen wie du die Regeln anderer Seiten ausser Kraft setzen kannst.

Wir würden uns auch nicht darüber freuen wenn in einem PHP Forum beraten und geholfen wird wie man unsere Regeln aushebelt.

In diesem Sinne... hoffe du kommst nicht auf die Idee noch einen Thread mit so einem offensichtloichen anliegen zu eröffnen.

 *geschlossen*


----------

