2017-03-11 6 views
-1

複数の(連続して番号が付けられた)サイトから画像ファイルをダウンロードし、ダウンロード場所に合わせてファイル名を変更する簡単な方法はありますか?例えば複数のサイトでcURLまたはwgetを使用する

www.001.mysite.com/photo.jpg

www.002.mysite.com/photo.jpg

...

..写真は、各Si上に同じ名前が付けられています。

www.050.mysite.com/photo.jpg

テ。それらの写真をダウンロードし、photo001.jpgのように名前を変更して、それを現在の日付のディレクトリに置くことは可能ですか?

私はいくつかの検索を開始しました...この部分と他の部分の部分を助けるアイデアを見つけましたが、それを機能させようとすると、何もエラーもなくなります。

+0

プログラミング言語またはスクリプト言語を使用していますか? – axiac

+1

あなたがmacOSやLinux上にいて、bashがあなたの選択したシェルであると仮定すると、クイックコマンドラインは 'for i in {1..50}; do j = $(printf%03d $ i);エコーカール-oイメージ$ j.jpg http://www.$j.mysite.com/photo.jpg;完了しました。あなたがそれを行うために 'echo'を削除する必要があるように見えるようになるまで、それを調整します(' echo'は、コマンドを実行するのではなくコマンドを表示します)。 – axiac

+0

これには設定ファイルを使用できます。これはmanページの-Kです。 – Aleksandar

答えて

0

これはBashを使うことができますが、私はBashを知らないので、たくさんの画像をダウンロードする必要がある場合に備えて、複数の並行プロセスを使用してWebサーバーでの待ち時間を減らすPythonの例を示します:

import os 
num_images = 100 # change me 
num_concurrent = 4 # to be tweaked 
i = 0 
while i < num_images: 
    calls = [] 
    for i2 in range(num_concurrent): 
     # this will download 0, 1, ..., 9, 10, 11 
     # change the number format if necessary 
     call = "curl www.{0}.mysite.com/photo.jpg > {0}.jpg".format(i) 
     calls.append(call) 
     i += 1 
    os.system(" & ".join(calls)) 

これは、num_concurrentイメージダウンロードのバッチを実行します。非常に多数の同時接続がTCP輻輳制御を混乱させるため、また目標のWebサイトからブロックされる可能性があるため、これを調整する際には控えめにしておくことをお勧めします。

関連する問題