wget を使用して SourceForge からファイルをダウンロードしようとしていますが、ご存知のとおり、ダウンロード ボタンをクリックして、自動的にダウンロードされるのを待つ必要があります。この種類のファイルを wget を使用してダウンロードするにはどうすればよいでしょうか?
これをダウンロードしようとしています:http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.1/bitcoin-0.8.1-linux.tar.gz/download
しかし、その URL リンクで wget を実行しても、ファイルはブラウザ経由で自動的にロードされるため、ファイルは取得されません。
答え1
curl
これを実行するには、 の代わりに を使用することをお勧めします。スイッチ、、およびwget
を使用してリダイレクトに従うことができます。-L
-J
-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.
を参照してくださいcurl マニュアルページ詳細については。
答え2
では、ダウンロードしたファイルの名前を記述するために「Content-Disposition」ヘッダーを使用する一部のファイルダウンロード CGI プログラムに役立つオプションをwget
使用できます。--content-disposition
例:
wget --user-agent=Mozilla --content-disposition -E -c http://example.com/
より複雑なソリューション(認証が必要な場合など)の場合は、Cookie ファイル(--load-cookies file
)を使用してセッションをシミュレートします。
答え3
wget
または OS のバージョン、およびあなたと SourceForge の間にプロキシが存在するかどうかはわかりませんが、 wget
「/download」を削除してファイル拡張子だけ残すと、ファイルがダウンロードされました。
セッション全体で投稿や pastebin を大量に送信したくないのですが、転送が始まる前に 302 と 200 のステータス コードが表示されました。試してみるとどうなりますか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'