重複した画像を同時にダウンロードする方法は?

重複した画像を同時にダウンロードする方法は?

900個のURLのリストがあります。各ページには1つの画像が含まれています。一部の画像が重複しています(URLは同じです)。 900枚の写真をダウンロードしたいのですが、含む繰り返す

wgetを使用して、すべてのページと埋め込み画像をダウンロードできます(他のすべてのファイル形式は無視されます)。しかし、wgetは以前にダウンロードした画像を「無視」しているようです。 900ページがありますが、画像は約850枚だけです。

(どうやって)wgetに重複するアイテムもダウンロードするように指示できますか?ファイル名に_1、、、...を追加できます。_2


私のwgetコマンド:

wget --input-file=urls.txt --output-file=log.txt --wait 1 --random-wait --page-requisites --exclude-domains code.jquery.com --span-hosts --reject thumbnail*.png -P downloadfolder

ベストアンサー1

私の考えでは、あなたの問題は--page-requisites。重複したアイテムを識別して再ダウンロードするのを防ぐと思います。これは一般的にあなたが望むものです。次のように各URLに対してwgetを1回呼び出し、毎回別のフォルダにダウンロードすることでこの問題を解決できます。

#!/bin/bash
let i=0
while IFS=$'\n' read url; do 
  let i++; 
  wget -nv -P $i --page-requisites "$url"; 
done < urls.txt

ただし、各ファイルに含まれる画像は1つだけ必要です。これにより、トリックを実行できます。

wget -i urls.txt -q -O - | ...extract image URLs... | wget -nv -i -

HTMLからURLを抽出することは、逐語的なURLを見つけるのと同じくらい簡単です。

grep -Eo 'http://host/abc/[^"]+.jpg'

またはもう少し努力が必要です。 900個のURLが同様のHTMLを指している場合は問題になりません。とにかく、名前が競合するファイルに番号を付けます。

おすすめ記事