peterha
Goto Top

WGET - Downloaden von Dateien bei denen sich der Downloadlink ändert.

Moin Leute,

auf einer URL http://domain.toplevel/files/ liegt eine Datei "K83KFas.bin" deren Name sich täglich ändert.
Heute ist der Link also http://domain.toplevel/files/K83KFas.bin und morgen http://domain.toplevel/files/*.bin

Ich möchte diese Datei täglich mit WGET (oder einer anderen Lösung) herunterladen. Der Parameter -r (rekursiv) oder --mirror wird von der Website abgelehnt.

Mit
wget.exe -e robots=off --wait 0.77 -A bin "http://domain.toplevel/files/*.bin"
also Sternchen geht's nicht. face-sad


Meine Frage: Wie kann ich diese Datei mit dynamischen Link dennoch (unter Win) herunter laden?

Danke für euren Tipp,
Schönes WE,
Peter

Content-ID: 254154

Url: https://administrator.de/contentid/254154

Ausgedruckt am: 22.11.2024 um 05:11 Uhr

Lochkartenstanzer
Lochkartenstanzer 07.11.2014 um 11:48:06 Uhr
Goto Top
Zitat von @peterha:

auf einer URL http://domain.toplevel/files/ liegt eine Datei "K83KFas.bin" deren Name sich täglich ändert.

Und wie erfährst du sonst den Namen des Links?

lks
colinardo
colinardo 07.11.2014 aktualisiert um 12:10:14 Uhr
Goto Top
Hallo Peter,
du musst den Namen von einer Webseite wo dieser steht extrahieren, und dann als Variable in dein wget-Aufruf einbauen.

Wie willst du's haben? Als Powershell/VBS/AutoIt ?

Grüße Uwe
peterha
peterha 07.11.2014 um 11:55:02 Uhr
Goto Top
Indem ich drauf gehe und dann anklicke...
peterha
peterha 07.11.2014 um 12:11:45 Uhr
Goto Top
Hört sich nach einem Plan an. Womit würdest du das machen? Geht das per CMD die dann eine Datei schreibt "link.txt" und daraus fischt sich das dann das WGET?

Danke Uwe.

Peter
colinardo
Lösung colinardo 07.11.2014, aktualisiert am 10.11.2014 um 17:13:24 Uhr
Goto Top
Ich würde das unter Windows komplett mit Powershell machen, dann brauchst du noch nicht mal wget zum runterladen. Wenn du willst mache ich dir mal ein kleines Beispiel damit.

Hier der Powershell-Code für dein Vorhaben (Kompatibilität mit PS 2.0 sichergestellt, ansonsten geht's auch mit dem CMDlet Invoke-Webrequest)
$net = New-Object System.Net.WebClient
$net.Encoding = [System.Text.Encoding]::UTF8
$content = $net.DownloadString("http://free.avg.com/de-de/update-herunterladen")  
$dlurl = [regex]::Match($content,'http://download\.avgfree\.com/softw/15free/update/.*?\.bin').Value  
$net.DownloadFile($dlurl,'c:\definition.bin')  
Lochkartenstanzer
Lösung Lochkartenstanzer 07.11.2014, aktualisiert am 10.11.2014 um 17:13:22 Uhr
Goto Top
Zitat von @peterha:

Indem ich drauf gehe und dann anklicke...

Dann hoel die seite mit wget/links/lynx und extrahier daraus den link. quick und drity könten das z.B. so aussehen:
lynx --dump http://web.sei.te/ | grep "http://web.sei.te/pfad/.*bin" | xargs wget 

Führt zwar auch zu fehlermeldungen, holt aber auch die bin-datei, egal wie sie gerade heißt.

lks

PS. Wenn die Webseite den Links per javascript baut, mußt man das noch etwas ausgefeilter machen.