web-dev-qa-db-ja.com

ウェブサイトからすべての画像をダウンロードする

ウェブサイトのすべての画像をダウンロードしようとしています

こちらがウェブサイトです:

https://wall.alphacoders.com/by_sub_category.php?id=173173&name=Naruto+Wallpapers

私は試した:

wget -nd -r -P /home/Pictures/ -A jpeg,jpg,bmp,gif,png https://wall.alphacoders.com/by_sub_category.php?id=173173&name=Naruto+Wallpapers
s

しかし、画像はダウンロードしません

結果

HTTP要求が送信され、応答を待っています... 200 OK長さ:未指定[text/html]/home/Pictures:許可が拒否されました/home/Pictures/by_sub_category.php?id=173173:そのようなファイルまたはディレクトリはありません

「/home/Pictures/by_sub_category.php?id=173173」に書き込みできません(そのようなファイルまたはディレクトリはありません)。

3
dragon

Wgetで指定されたページからすべての画像をダウンロードするには、次のコマンドを使用できます。

wget -i `wget -qO- https://wall.alphacoders.com/by_sub_category.php\?id\=173173\&name\=Naruto+Wallpapers | sed -n '/<img/s/.*src="\([^"]*\)".*/\1/p'`

この例では、HTMLファイルはwgetでSTDOUTにダウンロードされ、sedで解析されるため、img URLのみが残り、ダウンロードの入力リストとしてwget -iに渡されます。

このページの画像のみをダウンロードしますが、それらは単なるサムネイル(幅350ピクセル)であることに注意してください。

完全なイメージをダウンロードする場合は、一歩進んで、解析されたIMGのURLを変更して、高解像度のイメージに対応するようにする必要があります。あなたはsedまたはawkでそれを行うことができます:

wget -i `wget -qO- https://wall.alphacoders.com/by_sub_category.php\?id\=173173\&name\=Naruto+Wallpapers | sed -n '/<img/s/.*src="\([^"]*\)".*/\1/p' | awk '{gsub("thumb-350-", "");print}'`

最後のコマンドを実行した結果、ディスクにHD壁紙のパックができます

enter image description here

1
x1sn0tz