Wie lade ich Dateien mit wget herunter, wenn die Seite Sie auf den Download warten lässt?

Wie lade ich Dateien mit wget herunter, wenn die Seite Sie auf den Download warten lässt?

Ich versuche, mit wget eine Datei von Sourceforge herunterzuladen, aber wie wir alle wissen, müssen wir auf die Download-Schaltfläche klicken und dann warten, bis der Download automatisch erfolgt. Wie lädt man diesen Dateityp mit wget herunter?

Ich versuche dies herunterzuladen:http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/bitcoin-0.8.1-linux.tar.gz/download

Wenn ich jedoch ein Wget für diesen URL-Link ausführe, kann ich die Datei nicht abrufen, da die Datei automatisch über den Browser geladen wird.

Antwort1

Ich würde vorschlagen, curlhierfür anstelle von zu verwenden wget. Die Umleitung kann mit den Schaltern -L, -J, und erfolgen -O.

curl -O -J -L http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/bitcoin-0.8.1-linux.tar.gz/download

Schalterdefinitionen

-O/--remote-name
  Write output to a local file named like the remote file we get. 
  (Only the file part of the remote  file  is  used, the path is cut off.)

-L/--location
  (HTTP/HTTPS)  If  the  server  reports that the requested page has moved 
  to a different location (indicated with a Location: header and a 3XX 
  response code), this option will make curl redo the request on the new 
  place.  If  used together  with  -i/--include  or -I/--head, headers from 
  all requested pages will be shown. When authentication is used, curl only 
  sends its credentials to the initial host. If a redirect takes curl to a 
  different host, it  won't be  able  to  intercept  the  user+password. 
  See also --location-trusted on how to change this. You can limit the
  amount of redirects to follow by using the --max-redirs option.

-J/--remote-header-name
  (HTTP) This option tells the -O/--remote-name option to  use  the  
  server-specified  Content-Disposition  filename instead of extracting a 
  filename from the URL.

Sehen Sie sich diecurl-Manpagefür mehr Details.

Antwort2

Sie wgetkönnen eine Option verwenden --content-disposition, die für einige CGI-Programme zum Herunterladen von Dateien nützlich ist, die „Content-Disposition“-Header verwenden, um zu beschreiben, wie der Name einer heruntergeladenen Datei lauten soll.

Zum Beispiel:

wget --user-agent=Mozilla --content-disposition -E -c http://example.com/

Verwenden Sie für komplexere Lösungen (z. B. Autorisierung erforderlich) die Cookie-Datei ( --load-cookies file), um Ihre Sitzung zu simulieren.

Antwort3

Ich bin nicht sicher, welche Version unseres wgetBetriebssystems und welche Proxys zwischen Ihnen und Sourceforge vorhanden sind, wgethabe die Datei jedoch heruntergeladen, als ich „/download“ entfernt und die Dateierweiterung belassen habe.

Ich möchte den Beitrag nicht überfluten oder meine gesamte Sitzung in den Pastebin einfügen, aber ich habe die Statuscodes 302 und dann 200 erhalten, bevor die Übertragung begann. Was passiert, wenn Sie es versuchen wget?

Resolving downloads.sourceforge.net... 216.34.181.59
Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected.
HTTP request sent, awaiting response... 302 Found

[snipped for brevity]

HTTP request sent, awaiting response... 200 OK
Length: 13432789 (13M) [application/x-gzip]
Saving to: `download'

verwandte Informationen