LINUX.ORG.RU

Автоматизированно сохранить картинки с web-страницы

 ,


0

1

На этой странице размещено 45 картинок (диафильм) — предупреждение: при загрузке страницы браузер может притормозить на 2-3 секунды --

https://ria.ru/society/20170104/1485150302.html

Мне нужно было их скачать, и я с удивлением обнаружил, что не могу этого сделать никаким способом, кроме как вручную. Вручную я их одну за другой сохранил.

Но м.б. кто-то подскажет, как можно в подобных случаях сохранить автоматизированно, в bash'e?

URL картинок, кажется, постоянные, но в html-коде страницы их нет. Обычные приемы с curl | grep споткнулись об это.

Ответ на: комментарий от MyTrooName

в html-коде страницы адресов картинок нет

LittleBin
() автор топика

как можно в подобных случаях сохранить автоматизированно, в bash'e?

да он походу без js не отображает => просто никак, а так - можно дергать firefox черeз какой-нибудь remote-control, или uzbl

добро пожаловать в веб-2.0

anonymous
()
Ответ на: комментарий от anonymous

дергать firefox черeз какой-нибудь remote-control

так-то и правым кликом не ужасно, но...

добро пожаловать в веб-2.0

вот да.

LittleBin
() автор топика

PhantomJS и скрипт на перле спасут отца русской демократии. Скачиваем полную страницу после отработки JS, выдергиваем нужные ссылки и натравливаем wget.

sergmz
()
Ответ на: комментарий от LittleBin

phantomjs моделирует поведение браузера.

Чтобы «открыть» с его помощью страницу делаем

phantomjs <rulescript> <URL>
Где 'rulescript' — java-script управляющий поведением PJS.

Для простого открытия страницы подходит такой скрипт


var webPage = require('webpage');
var page = webPage.create();
var system = require('system');
var url = system.args[1];


page.open(url, function (status) {
var content = page.content;
console.log(content);
phantom.exit();
});

Csandriel_forever
()
Ответ на: комментарий от Csandriel_forever

Может пригодится. Я этим скриптом дергаю mp3

#!/bin/bash
#у меня этот скрипт называется getsound 

#путь к java-скрипту, с инструкциями для phantomjs
RULE_SCRIPT="/home/bin/dump.js"

WORD=$1
echo "WORD is $WORD"
echo "rulescript is $RULE_SCRIPT"
echo "all is http://dictionary.cambridge.org/pronunciation/english/$WORD"
getit () {
#c помощью phantomjs проводим полноценную (как браузер) обработку страницы,
#включая выполнение js, иначе сервер нам покажет фигу а не ссылки на файло.
phantomjs $RULE_SCRIPT "http://dictionary.cambridge.org/pronunciation/english/$WORD"
};

#в два каскада фильтруем текст страницы: сначала вычленяем строку по названию кнопки,
#и уже из этого результата выдираем непосредственно ссылку на нужный файл
ADDRESS=$(getit|sed -n '/sound audio_play_button big-pron-us/ {
s_.*http\([^"]*\)\.mp3.*_http\1\.mp3_
p
}')
#далеко не всегда мы будем получать в ответ одну ссылку,
#поэтому произносим все полученные файлы в цикле
for INPUT_LINE in $ADDRESS; do
mpg123 $INPUT_LINE
sleep 2
done

Csandriel_forever
()
Ответ на: комментарий от Csandriel_forever
ADDRESS=$(getit|sed -n '/sound audio_play_button big-pron-us/ {
s_.*http\([^"]*\)\.mp3.*_http\1\.mp3_
p
}')

Здесь

sound audio_playbutton big-pron-us
нужно заменить на любую характерную для твоего случая часть сторки, содержащей ссылку. Тоесть это строка являющаяся маркером ссылки, по ней опознается именно кнопка «озвучить», в моем случае. А тебе нужно найти характерный признак ссылки на фотографию. Ну и .mp3 заменить на jpg

Csandriel_forever
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.