2012-05-04 9 views
3

ウェブサイトにギャラリーのローカルコピーがあります。ギャラリーにはdomain.com/id/1の画像が表示されます(IDは1ずつ増加します)。画像はpics.domain.com/pics/original/image.formatに保存されます。ウェブサイトから画像をダウンロードする

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 
} 

私は正確にはわからない:画像を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> 

ているので、私は(擬似コードで)このような何かを行うスクリプトを書きたいしたことを正確に行しかし、これを行う方法。私はbashでhtmlをダウンロードしてから、htmlを手動で検索してhttp://pics.domain.com/pics/original/を探すことができます。次にwgetを使用してファイルを保存し、htmlファイルを削除し、IDを増やして繰り返します。唯一のことは、文字列を扱うのがうまくいかないため、誰かがURLを検索してファイル名と形式を*に置き換える方法を教えてもらえれば、残りの部分を手に入れることができるはずです。または、私の方法がばかだとあなたはより良いものを持っていれば分かち合ってください。

答えて

18
# 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- 
+0

ありがとうございました!エレガントで、速く、わかりやすいソリューション。 –

+0

@マイク私はそれらのコマンドをテストしなかった。何か問題があれば教えてください。 – kev

+0

ちょうどあなたが知っている、それは素晴らしい仕事をした。 –

関連する問題