J'essaie de télécharger un fichier depuis sourceforge en utilisant wget, mais comme nous le savons tous, nous devons cliquer sur le bouton de téléchargement et attendre qu'il se télécharge automatiquement. comment télécharger ce type de fichier en utilisant wget?
J'essaie de télécharger ceci: http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/bitcoin-0.8.1-linux.tar.gz/download
Mais faire un wget sur ce lien URL ne me permettrait pas d'obtenir le fichier car le fichier est automatiquement chargé via le navigateur.
Je ne sais pas quelle version de wget
ou de système d'exploitation et de tout proxy existe entre vous et sourceforge mais wget
a téléchargé le fichier lorsque j'ai supprimé le "/ download" et l'ai laissé à l'extension de fichier.
Je ne veux pas inonder le message ou Pastebin toute ma session, mais j'ai reçu les 302 puis 200 codes d'état avant le début du transfert. Que se passe-t-il lorsque vous essayez 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'
Je suggère d'utiliser curl
pour ce faire au lieu de wget
. Il peut suivre la redirection à l'aide des commutateurs -L
, -J
, et -O
.
curl -O -J -L http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/bitcoin-0.8.1-linux.tar.gz/download
-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.
Voir la page de manuel curl pour plus de détails.
Dans wget
, vous pouvez utiliser --content-disposition
option utile pour certains programmes CGI de téléchargement de fichiers qui utilisent des en-têtes "Content-Disposition" pour décrire le nom d'un fichier téléchargé.
Par exemple:
wget --user-agent=Mozilla --content-disposition -E -c http://example.com/
Pour des solutions plus complexes (comme une autorisation requise), utilisez un fichier cookie (--load-cookies file
) pour simuler votre session.