• Записи 162
  • Теги 66
  • Комментарии 330

Компьютерное

Как скачать весь сайт или используем WGet

Выкачивал сегодня копию своего старого профблога с помощью утилиты wget и решил рассказать о ней подробнее.


С помощью WGet можно качать сайты целиком, отдельные файлы или набор файлов по списку. Но отличие от других оффлайн-броузеров (например, Teleport Pro), WGet работает из командной строки. Сначала это кажется неудобным, но это неудобство легко решается с помощью простейшего BAT-файла. Например, я для себя сделал вот такой:


@echo off
set /p URL=Enter URL (with no http://):
if "%URL%"=="" goto error
D:\Soft\WGet\wget.exe -r -l0 -k -np -p -nv -nH -E -t 4 -N -c http://%URL% -P D:\Sites\
goto end
:error
echo No site specified!
:end
pause

Этот скрипт запросит имя сайта при запуске и затем скачает его в каталог D:\Sites\имя_сайта.


Некоторые наиболее полезные при скачивании сайта ключи wget:



  • -r — рекурсивное скачивание: скачается не только указанная страница сайта (т.е. главная), но и все, на которые она ссылается.

  • -l0 — глубина рекурсии (0 — неограниченная).

  • -k — коррекция гиперссылок так, чтобы они стали локальными.

  • -np — не подниматься выше указанного каталога (полезно при скачивании одного раздела сайта).

  • -p — загрузка вспомогательных элементов для отображения Web-страницы: CSS, JavaScript и т.п. Без данного ключа будет скачиваться только HTML.

  • -nv — подавление выдачи части сообщений.

  • -hH — не создавать каталог с именем хоста.

  • -E — сохранять файлы с расширением HTML.

  • -N — учет временной метки (заголовка Last-Modified): скачиваются только те файлы, которые обновились.

  • -t — количество попыток скачивания файла в случае возникновения ошибки.

  • -P — каталог, в который следует сохранить сайт.

  • -A — скачивать файлы, соответствующие шаблону. Шаблон может быть либо частью имени файла, либо задаваться с помощью символа *. Так, например, скачать все файлы с расширением .gif можно либо с помощью -A .gif, либо -A *.gif.

  • -R — пропускать файлы, соответствующие шаблону. Шаблоны задаются так же, как для опции -A.


Кроме скачивания сайтов, wget имеет еще несколько применений. Самое простое и очевидное — закачивать дистрибутив какой-либо программы напрямую, без предварительной выгрузки на свой компьютер и закачку с него по FTP (для этого нужен доступ к командной строке на сервере). Делается это командой wget -c URL_файла (ключ -c означает скачивание с докачкой).


Так же можно использовать wget в отладочных целях или для автоматизации каких-либо действий скриптами, например, мониторинга удаленного сайта. Например, с помощью него можно посылать дополнительные заголовки в запросе, просматривать ответы сервера, отправлять POST-запросы и т.д. Тут полезными окажутся такие ключи:



  • -S — вывод ответа сервера.

  • --spider — только получение ответа сервера, без сохранения в файл.

  • --header=строка_заголовка — добавить в заголовок запроса указанную строку.

  • --load-cookies и --save-cookies — загрузка и сохранение cookies в файл.

  • --post-data и --post-file — отправка строки данных или данных из файла POST-запросом.


Получить wget очень легко: в Linux он сразу же устанавливается почти во всех дистрибутивах, для Windows его можно скачать по адресу http://users.ugent.be/~bpuype/wget/. Установки он не требует, поэтому можно носить с собой на флешке или любом другом носителе.

27 комментариев:

Показать еще 8 комментариев
4X_Pro
0

Вопрос: а в разрядности не может быть проблема? Т.е. к 64-битному wgetу делается попытка прикрутить 32-битный libeay32.dll или наоборот. Попробуйте еще в SysWOW64 эту dll положить.

Нет
Игорь
0

День добрый. Требуется помощь. Не могу разобраться как скачать с сайта http://www.universitys.ru, а именно с директории http://www.universitys.ru/storage/ все pdf файлы. Можно, пожалуйста, батник, а то руки, видимо, не под то заточены и никак не хватает мозга написать..

4X_Pro
0

По этому адресу выдается ошибка 404.

Нет
Vladimir
0

Есть ли какая-нибудь возможность восстановить сайт из кэша Googlа (например, скрипт)

4X_Pro
0

Я таких скриптов не видел.

Нет
7Scorpion
0

Здравствуйте. Скачал сайт с коррекцией гиперссылок (.php расширение изменилось на .html) - в результате всё отлично, за исключением того, что не видит слайдер с фотографиями на главной странице. Где править код,подскажите, пожалуйста. Спасибо.

4X_Pro
0

Скорее всего, нужно подправить Javascript где-то в index.html главной страницы. Еще могу предположить, что список фотографий для слайдера подгружался через AJAX, а wget такие вещи видеть не умеет. Могу еще посоветовать посмотреть, какая ошибка вылезает в консоли броузера, которая доступна по Ctrl+Shift+J (в Chrome-подобных броузерах).

Нет
Никола К.
0

День добрый. Есть такой фопрос: существует сайт http://www.vmasshtabe.ru/promzona/energetika/kso-298-transformatornaya.html
где надо скачать файлы этой КСО-шки. по идее они лежат прям на странице, однако там же есть скрипт который считает рейтинг, которого, в свою очередь, у меня нет. Как можно скачать целиком всю страницу вместе с файлами, либо же, можете указать в каком месте они лежат? Заранее огромное спасибо)

4X_Pro
0

Без регистрации там ссылок не видно вообще, так что сказать что-либо определенное не могу.

Нет
Link
0

Ребята, подскажите пожалуйста. Есть ли возможность при помощи данного софта скачать локальную копию альбомов в вк?
Я работаю сборщиком заказов, а продавцы хитры, все свои бока могут и возможно перекладывают на меня. Решил попробовать сохранять изначальный вид альбомов и его содержимого. Я могу как-то настроить батник или софт под свой логин и пароль к сайту вк, чтобы он не сохранял мне страницу с предупреждением "только авторизированные пользователи имеют доступ"? Помоги решить данную проблему, может есть уже готовое решение? Заранее спасибо вам!

4X_Pro
0

Можно, если вы знаете, что такое cookies и как вытащить их из броузера. Тогда нужно в вызове wget добавить "--header=Cookie: имя=значение".
Если нет, то вряд ли.

Нет
Link
0

а вы не подскажите, как мне это сделать?

Нет
pippa
0

а как пропустить папку?

4X_Pro
0

Использовать параметр --exclude-directories или его сокращенный вариант -X. Например, такой вызов:

wget http://4xpro.ru/ -r -l 3 -X lytdybr -X forum


скачает весь этот сайт, кроме дневника и форума.
Нет
Гость
0

Здравствуйте!

Извините пожалуйста за беспокойство, но очень нуждаюсь в Вашем профессиональном совете. Хочу скачать эту веб-страницу https://avi.cuaed.unam.mx/repositorio/moodle/pluginfile.php/2858/mod_resource/content/11/contenido/index.html, чтобы просматривать в оффлайн. Скачивала ее с помощью WGet. В оффлайн режиме грузит все, кроме видео. Есть ли возможность настроить Wget так, чтобы можно было скачать страницу полностью, чтобы вид и функции были такими же как и онлайн, и чтобы видео на странице тоже можно было загрузить без использования интернета? Подскажите пожалуйста, что нужно написать в строке? Писала много разных команд, но тщетно. Никак не могу найти совета.

4X_Pro
0

Нет, видео на той странице вставлено с YouTube, а такое WGet качать не умеет.
Можно пойти другим путём: щелкнуть правой кнопкой по видео и там в меню выбрать «Копировать URL видео», а дальше воспользоваться сервисами типа SaveFromNet. Но это придётся делать вручную, автоматизировать не получится…

MadTechGuy
0

У SaveFrom есть специальный домен: ssyoutube.com. Если в URL видео YouTube заменить «youtube.com» на «ssyoutube.com» и перейти по нему, то сработает перенаправление на страницу скачивания видео. Есть ещё youtube-dl, который позволяет частично автоматизировать задачу. Есть способы автоматизировать её полностью, но все они нетривиальные.

Нет
BiMixxx
0

день добрый, разъясните, что я делаю не так: запустил скачивание с сайта файлов с расширением .zip, но через несколько часов появились только пустые папки. а где файлы?
строка: wget.exe -r -l5 -P D:\! Nevseoboi.com.ua

4X_Pro
0

Там ссылки не доступна напрямую, а генерируются через JavaScript при каждом просмотре страницы (скорее всего, защита от автоматического скачивания). Поэтому скачать что-то wgetом не получится.

Написать комментарий


Задать вопрос