4

Web サイトにギャラリーのローカル コピーを置きたいと考えています。ギャラリーには、domain.com/id/1 の写真が表示され (id は 1 ずつ増加します)、画像は pics.domain.com/pics/original/image.format に保存されます。画像が HTML に持っている正確な行は次のとおりです。

<div id="bigwall" class="right"> 
    <img border=0 src='http://pics.domain.com/pics/original/image.jpg' name='pic' alt='' style='top: 0px; left: 0px; margin-top: 50px; height: 85%;'> 
</div>

そこで、次のようなことを行うスクリプトを書きたいと思います (疑似コードで):

for(id = 1; id <= 151468; id++) {
     page = "http://domain.com/id/" + id.toString();
     src = returnSrc(); // Searches the html for img with name='pic' and saves the image location as a string
     getImg(); // Downloads the file named in src
}

ただし、これを行う方法が正確にはわかりません。wget を使用して html をダウンロードし、手動で html を検索してhttp://pics.domain.com/pics/original/を bash で実行できると思います次に wget を再度使用してファイルを保存し、html ファイルを削除し、ID をインクリメントして繰り返します。唯一のことは、私は文字列を扱うのが得意ではないので、誰かが URL を検索して *s をファイル名と形式に置き換える方法を教えてくれれば、残りはうまくいくはずです。または、私の方法がばかげていて、より良い方法がある場合は、共有してください。

4

1 に答える 1

25
# get all pages
curl 'http://domain.com/id/[1-151468]' -o '#1.html'

# get all images
grep -oh 'http://pics.domain.com/pics/original/.*jpg' *.html >urls.txt

# download all images
sort -u urls.txt | wget -i-
于 2012-05-04T05:36:06.890 に答える