wget изменение имени изображения на странице

wget изменение имени изображения на странице

Изображение генерируется раз в nминуту, и я хочу получить каждое из них в свой локальный каталог. Мне не удалось получить 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

Две стратегии:

  • index.html grepстратегия

Это работает только в том случае, если в файле есть только одна ссылка на png 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
  • Эмуляция браузера путем изменения заголовков запроса

Примеры того, как это сделать:здесь,здесьиздесь.

Связанный контент