wget ページ内から画像名を変更する

wget ページ内から画像名を変更する

画像は 1n分ごとに生成され、これらをそれぞれローカル ディレクトリに取得したいと考えています。次のコマンドを使用して png 画像を取得できませんでした。

wget -r -l1 --no-parent -A.png http://url.com/home/images/

サイトによってブロックされているため使用できません

wget http://url.com/home/images/filename.png

画像の名前は更新ごとに変わるためです。

ただし、画像はリンクされておりhttp://url.com/home/index.html、そこからファイル名を取得できます。これを確実に行う方法は何ですか? 検索するパターンはわかっています。ディレクトリから呼び出される唯一の画像です/home/images/

答え1

2つの戦略:

  • index.html grep戦略

以下に png 参照が 1 つだけある場合にのみ機能しますindex.html

#!/bin/bash
wget http://url.com/home/images/index.html
LINK=$(cat index.html | grep -zPo 'href=.*.png"')
LINK=${LINK#href=\"}; LINK=${LINK%\"}
wget --no-parent "http://url.com/home/images/$LINK"
rm index.html
  • リクエストヘッダーの変更によるブラウザエミュレーション

その方法の例は次のとおりですここここそしてここ

関連情報