Verwendung von wget oder einem anderen Tool zum Herunterladen einer Datei, für die der Link ausgeblendet ist (wird nur beim Klicken aktiviert)

8

Ich möchte einige Untertiteldateien herunterladen, die in rar-Dateien von http://subs.sab.bz/ gespeichert sind. Die Site bietet RSS-Feeds für ihre neuen Versionen. Leider wird über den angegebenen Link eine Download-Seite geöffnet, die Datei wird jedoch nicht abgerufen.

Die Download-Seite hat eine Schaltfläche in der Mitte. Wenn Sie darauf klicken, wird die gewünschte rar-Datei heruntergeladen. Wenn ich mit der rechten Maustaste auf den Link klicke, ihn kopiere und versuche, ihn zu öffnen, öffnet der Browser die Download-Seite selbst, lädt die Datei jedoch nicht herunter. Wenn ich versuche, den Download-Link der Datei in wget and curl zu verwenden, wird eine PHP-Datei heruntergeladen. Ich habe gelesen, dass in solchen Fällen ein serverseitiges Skript verwendet wird, um den richtigen Link an den Client-Computer zu übergeben.

Daher suche ich nach einer Möglichkeit, wget zu zwingen, die On-Click-Aktion dieses Links zu emulieren. Ich kenne HTML CSS und Javascript genug, um andere Eigenschaften des Download-Links zu finden.

Kann das überhaupt gemacht werden?

PS. Ich bin ziemlich verwirrt, warum diese Frage abgelehnt wurde. Irgendeine gute Erklärung, habe ich irgendwelche Regeln für das Posten gebrochen oder so, danke ..

Deckoff
quelle
Mögliches Duplikat: "... einige
Webaufgaben
5
FWIW, diese Site führt nur Referrer-Überprüfungen durch. wget --referer http://subs.sab.bz/ 'http://subs.sab.bz/...&attach_id=1234'habe mir eine RAR-Datei besorgt.
Hhaamu
Poste es als Antwort, damit ich es positiv bewerten und akzeptieren kann. Vielen Dank. Möchten Sie weitere Informationen darüber, was genau der Referer tut und wofür er verwendet wird, konnten Sie den Wiki-Artikel nicht nachvollziehen
Deckoff
Ich habe dich nicht abgelehnt, aber du wurdest abgelehnt, weil die Frage nicht sehr klar ist. (Wenn eine Frage gegen die Regeln
verstößt

Antworten:

15

Sie verwirren ein paar Dinge. "Onclick" -Aktionen beziehen sich auf JavaScript und sind clientseitig. Sie müssten untersuchen, was der JavaScript-Hook für diese Links bewirkt, um die URL zu entschlüsseln. Hier sind jedoch keine Onclick-Aktionen im Spiel.

Die betreffende Website überprüft die Referrer , auch als "Hotlink-Schutz" bezeichnet . Der Browser sendet standardmäßig einen Referrer-Wert und ist die URL der vorherigen Seite. Dies geschieht, damit eine andere Website die Bandbreite der Website nicht durch das Posten direkter Links zu den Dateien beeinträchtigt.

Wenn Sie versuchen, den Link zu kopieren und direkt in Ihren Browser einzufügen, erhalten Sie dasselbe Verhalten, das Sie in Ihrer Frage beschreiben, da der Browser dann nicht wissen würde, ob er die Referrer-Informationen senden soll.

Die Option, wget anzuweisen, einen Referrer-Wert zu fälschen, ist --refererund -efür Curl. Der Wert kann in der Regel sicher an die Wurzel der Website eingestellt werden - die Websites überprüfen in der Regel nicht , dass der Wert richtig ist , dass gründlich:

wget -O output.rar --referer http://subs.sab.bz/ 'http://subs.sab.bz/your-link-here'
hhaamu
quelle
Danke :) Ich war verwirrt, das ist richtig. Ich nahm an, dass etwas passiert ist, wenn ich auf den Download-Button klicke, daher meine On-Click-Annahme. Vielen Dank, dass Sie dies für mich geklärt haben.
Deckoff
Ich habe es mit meiner IPcam versucht, aber ohne großen Erfolg. wget -O snapshot.jpg --referer http://192.168.178.58:81 'http://192.168.178.58:81/snapshot.cgi?user=admin&pwd=12345678'. Wenn ich die Ausgabe ins Englische übersetze, heißt das "Verbindung hergestellt, HTTP-Anfrage gesendet, auf Antwort warten". Dann bleibt wget hängen. Ich bin sicher, dass ich es falsch benutze, aber wie würde ich das JPG mit Bash herunterladen? Danke im Vorraus für deine Hilfe.
McPeppr