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, curl
hierfü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 wget
kö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 wget
Betriebssystems und welche Proxys zwischen Ihnen und Sourceforge vorhanden sind, wget
habe 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'