Необходимость скачать картинки с сайта возникает довольно часто и эту задача конечно хочется автоматизировать чтобы не тратить время на клацание мышкой постоянно сохрання их на диск и далее чтобы добраться до следующей картинки в галерее с последующим ожиданием отклика сайта. Так как способов хранения картинок на сайте и представления их посетителю несколько, то и методы автоматизации также различны.
- можно попробовать забрать прямо из внутренних директорий сайта если сайт является обычным хранилищем картинок, без изысков вроде механизма сессий и галерей на JavaScript
- забирать со страницы если картинки отображаются в галерее или когда нужно выкачать не весь сайт целиком, а забрать картинки с некоторых страниц
- и самое изысканное когда есть и механизм сессий, и картинку можно увидеть только кликнув на неё в галерее, что частый случай в социальных сетях
В первом случае на помощь может придти старый добрый wget, важно только его правильно натравить на жертву.
Самым простым будет использование его следующим образом:
wget -r -A .jpg,.png http://supermegakartinki.ru/
Тогда wget начнёт шерстить как заведённый всю структуру директорий подопытного и сохранять эту структуру каталогов, сохраняя на диск все папки и бережно укладывая файлы с указанными разрешениями в те места где они ему и встретились.
Чтобы поумерить этот пыл и не грузить сайт-жертву непрерывными запросами можно добавить опцию, которая охладит пыл старой доброй программы и вообще сделает поведение похожим на человека потому что не все сайты любят роботов. Запуск в таком виде сделает запросы wget более щадящими для сайта-жертвы:
wget —random-wait --limit-rate=100k
-r -A .jpg,.png http://supermegakartinki.ru/
1 |
Опция </code>--random-wait установит задержку между запросами в интервале 0,5-1,5 секунды, а <code>--limit-rate ограничит скорость скачивания файлов. |
Ну и окончательно прикинуться человеком нам поможет опция —user-agent Пример использования ниже, подставить описание браузера можно на любой вкус и цвет.
1 |
--user-agent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6" |