/ парсеры

Wget как скачать сайт

Очень часто возникает необходимость в копировании стороннего сайта. В то время, как копирование с помощью встроенной функции браузера "сохранить как", не работает должным образом, можно воспользоваться программой wget.
В этой статье будут рассмотрены основные команды wget, на примере будет показано, как скачать страницу с помощью wget для локального просмотра, а так же, как скачать https сайт.

  1. Скачивание страниц по списку из файла
  2. Как задать папку для скачивания
  3. Рекурсивное скачивание подкаталогов
  4. Выкачивание всего сайта
  5. Скачивание страницы с локальным сохранением клиентских файлов
  6. Скачивание http-страниц
  7. Резюме

В этой статье я не буду рассматривать установку wget на компьютер. Я воспользуюсь сборкой Open Server, в которой эта программа уже включена. Open Server - это сборка локального веб-сервера. Потому, если вы не программируете на php, то смысла устанавливать Open Server не много. Для вас лучший вариант - это отдельная установка wget.

Wget - это консольная программа для загрузки файлов. Это программа чем-то похожа на CURL, однако, они решают совсем разные задачи. Wget позволяет скачивать страницы сайта, вместе с полным содержанием страницы (css, js, картинки) к себе на компьютер. Что позволяет открыть этот сайт у себя, без интернета, абсолютно не искажая его исходное отображение. Так же, эта программа включает в себе возможность рекурсивного скачивания страниц, что позволит с помощью wget скачать весь сайт целиком, и отображать его локально.

Скачивание всех страниц по списку из файла

wget -i YOURFILE, где YOURFILE - путь к файлу, с URL-адресами

Например, у меня есть файл links.txt:
ulrs

Теперь, запустив команду wget -i links.txt (у меня links.txt находится в той папке, относительно которой запущена консоль)

И в результате получим 3 файла, как и было в списке:
file_res

Скачивание в указанную папку

Для того, чтобы скачать в нужную нам папку, нужно выполнить:
wget -P /path http://example.com, где /path - папка для сохранения, http://example.com - url-сайта, который нужно скачать

-P - путь сохранения (указывается -P /path)

Например, скачаем содержимое главной страницы http://badcode.ru в папку files

Выполним:
wget -P files http://badcode.ru

И wget создаст папку с названием files, и куда сохранит содержимое нашего сайта

Рекурсивное скачивание каталога и вложенных подкаталогов

wget -r --no-parent http://example.com/catalog

Проверим это на примере скачивания всех статей одного из тегов: http://badcode.ru/tag/parsery/

Выполнив:
wget -r --no-parent http://badcode.ru/tag/parsery/

Скачивание всего сайта

wget -r -l 5 -k -p http://example.com

Каждая из опций значит:
-r - рекурсивно открывает новые найденные страницы
-l - глубина рекурсии -l 5, что значит, что максимально рекурсивно будет открыто 5 ссылок
-k - конвертирование ссылок на локальные, загружая файлы (css, js, картинки) к себе в папку
-p - скачать в папку все нужные файлы для отображения страницы без интернета

Выполнив:
wget -r -l 5 -k -p http://badcode.ru

Получим результат в виде всех скачанных статей, которые без проблем можно читать без интернета:
result-all-1

Скачивание одной страницы со всеми файлами

Эта команда будет симбиозом того, что мы уже рассмотрели.
wget -k -p http://example.com

А ключи -k и -p нам уже известны: это значит, что мы говорим wget скачать все файлы, и проставить пути так, чтобы можно было открыть эти страницы локально, без интернета.

Скачивание https-страницы

Для того, чтобы скачать https-страницы, просто нужно добавить опцию --no-check-certificate

На прошлом примере, что будет иметь вид:
wget -k -p https://example.com --no-check-certificate

Резюме

Цель этой статьи - показать, с какой простотой и удобством можно пользоваться Wget. Я постарался ответить на то, как сохранять страницы, или даже целые сайты к себе локально, и просматривать их без интернета. В этой статье были описаны основные команды Wget, если вы хотите более продвинутого пользования этим инструментом, то этой информации будет недостаточно.
Ранее, для того, чтобы скопировать какую-то страницу, я прибегал к использованию сторонних сервисов, которые, зачастую, являются обёрткой над Wget. Потому, изучив основные команды Wget, необходимость в других сервисах отпадает сама собой.
К слову, моя "история фриланса", как раз и началась, с того, что я копировал лендинги, и тут мне очень помогали знания, связанные с Wget.