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

Очень часто возникает необходимость в копировании стороннего сайта. В то время, как копирование с помощью встроенной функции браузера "сохранить как", не работает должным образом, можно воспользоваться программой wget.
В этой статье будут рассмотрены основные команды wget, на примере будет показано, как скачать страницу с помощью wget для локального просмотра, а так же, как скачать https сайт.
В этой статье я не буду рассматривать установку wget на компьютер. Я воспользуюсь сборкой Open Server, в которой эта программа уже включена. Open Server — это сборка локального веб-сервера. Потому, если вы не программируете на php, то смысла устанавливать Open Server не много. Для вас лучший вариант — это отдельная установка wget.
Wget — это консольная программа для загрузки файлов. Это программа чем-то похожа на CURL, однако, они решают совсем разные задачи. Wget позволяет скачивать страницы сайта, вместе с полным содержанием страницы (css, js, картинки) к себе на компьютер. Что позволяет открыть этот сайт у себя, без интернета, абсолютно не искажая его исходное отображение. Так же, эта программа включает в себе возможность рекурсивного скачивания страниц, что позволит с помощью wget скачать весь сайт целиком, и отображать его локально.
Скачивание всех страниц по списку из файла
wget -i YOURFILE , где YOURFILE — путь к файлу, с URL-адресами
Например, у меня есть файл links.txt : 
Теперь, запустив команду wget -i links.txt (у меня links.txt находится в той папке, относительно которой запущена консоль)
И в результате получим 3 файла, как и было в списке: 
Скачивание в указанную папку
Для того, чтобы скачать в нужную нам папку, нужно выполнить:
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
Получим результат в виде всех скачанных статей, которые без проблем можно читать без интернета: 
Скачивание одной страницы со всеми файлами
Эта команда будет симбиозом того, что мы уже рассмотрели.
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.
Изучаем команду wget на 12 примерах
Все мы иногда качаем файлы из интернета. Если для этого использовать программы с графическим интерфейсом, то всё оказывается предельно просто. Однако, при работе в командной строке Linux дело несколько усложняется. Особенно — для тех, кто не знаком с подходящими инструментами. Один из таких инструментов — чрезвычайно мощная утилита wget, которая подходит для выполнения всех видов загрузок. Предлагаем вашему вниманию двенадцать примеров, разобрав которые, можно освоить основные возможности wget.
1. Загрузка одного файла
Если всё, что нужно — это загрузка одного файла, нам подойдёт следующая конструкция:
После ввода такой команды начнётся скачивание Nagios Core. В ходе этого процесса можно будет видеть данные о загрузке, например — сведения о том, какой объём данных уже загружен, текущую скорость, и то, сколько времени осталось до конца загрузки.
2. Загрузка файла и сохранение его с новым именем
Если мы хотим сохранить загруженный файл под именем, отличающимся от его исходного имени, нам пригодится команда wget с параметром -O :
При таком подходе загруженный файл будет сохранён под именем nagios_latest .
3. Ограничение скорости загрузки файлов
При необходимости скорость загрузки файлов с помощью wget можно ограничить. В результате эта операция не будет занимать весь доступный канал передачи данных и не повлияет на другие процессы, связанные с сетью. Сделать это можно, используя параметр —limit-rate и указав ограничение скорости, выраженное в байтах (в виде обычного числа), килобайтах (добавив после числа K ) или мегабайтах ( M ) в секунду:
Здесь задано ограничение скорости загрузки, равное 500 Кб/с.
4. Завершение прерванной загрузки
Если в ходе загрузки файлов эта операция была прервана, можно возобновить загрузку с помощью параметра -c команды wget :
Если этот параметр не использовать, то загрузка недокачанного файла начнётся сначала.
5. Фоновая загрузка файла
Если вы загружаете файл огромного размера и хотите выполнять эту операцию в фоне, сделать это можно, используя параметр -b :
6. Загрузка нескольких файлов
Если имеется список URL файлов, которые надо загрузить, но вам не хочется вручную запускать загрузки этих файлов, можно использовать параметр -I . Однако, перед тем, как начинать загрузку, нужно создать файл, содержащий все адреса. Например, сделать это можно такой командой:
В этот файл нужно поместить адреса — по одному в каждой строке. Далее, осталось лишь запустить wget , передав этой утилите только что созданный файл со списком загрузок:
Выполнение этой команды приведёт к поочерёдной загрузке всех файлов из списка.
7. Увеличение общего числа попыток загрузки файла
Для того, чтобы настроить число повторных попыток загрузки файла, можно использовать параметр —tries :
8. Загрузка файлов с FTP-сервера
Команда загрузки файла с анонимного FTP-сервера с помощью wget выглядит так:
Если для доступа к файлу требуются имя пользователя и пароль, то команда примет такой вид:
9. Создание локальной копии веб-сайта
Если нужно загрузить содержимое целого веб-сайта, сделать это можно, воспользовавшись параметром —mirror :
Обратите внимание на дополнительные параметры командной строки:
- -p : производится загрузка всех файлов, необходимых для корректного отображения HTML-страниц.
- —convert-links : ссылки в документах будут преобразованы для целей локального просмотра сайта.
- -P /home/dan : материалы будут сохранены в папку /home/dan .
10. Загрузка с сайта только файлов определённого типа
Для того, чтобы загрузить с сайта только файлы определённого типа, можно воспользоваться параметрами -r -A :
11. Пропуск файлов определённого типа
Если вы хотите скопировать целый веб-сайт, но при этом вам не нужны файлы определённого типа, отключить их загрузку можно с помощью параметра —reject :
12. Загрузка с использованием собственного .log-файла
Для того, чтобы загрузить файл и использовать при этом собственный .log -файл, воспользуйтесь параметром -o и укажите имя файла журнала:
Итоги
Wget — довольно простая в использовании, но весьма полезная утилита Linux. И, на самом деле то, о чём мы рассказали — лишь малая часть того, что она умеет. Надеемся, этот обзор поможет тем, кто не был знаком с wget, оценить эту программу, и, возможно, включить её в свой повседневный арсенал инструментов командной строки.
Уважаемые читатели! Пользуетесь ли вы инструментами командной строки Linux для загрузки файлов? Если да — просим о них рассказать.
Скачивание сайтов с помощью Wget
GNU Wget — это утилита командной строки для скачивания файлов и зеркалирования сайтов по протоколам FTP и HTTP, присутствующая по умолчанию в дистрибутивах Linux.

Содержание
Возможности
Среди возможностей Wget — работа в фоновом режиме после выхода из системы, рекурсивное извлечение каталогов, выбор файлов по шаблону, сравнение времени удаленных и локальных файлов, сохранение времени удаленных файлов при загрузке, использование REST с FTP серверами и Range с HTTP серверами для загрузки файлов по медленным или нестабильным каналам, поддержка прокси-серверов, конфигурируемость. Это самый настоящий интернет-насос.
Использование
Пользоваться Wget очень просто:
Докачка
В случае обрыва связи докачка файла так же элементарна:
Случаи получения битых файлов от Wget мне не известны.
Загрузка по списку
Загрузка по списку (каждая ссылка в файле links.inf должна находиться на новой строке):
Загрузка только изображений
Загрузка только изображений с расширением .jpg:
Скачивание сайтов целиком
Следуя по ссылкам Wget способен создавать локальные версии сайтов, полностью копируя структуру оригинальных сайтов:
Использование в скриптах
Wget очень удобно использовать в периодических скриптах, таких как cron:
Опции
Выводы
Команда wget является исключительно полезной и простой в использовании. Даже начинающие пользователи Linux смогут оценить её возможности и мощь.
Скачиваем сайты целиком — утилита wget

wget — это утилита, которая предназначена для загрузки файлов по сети (из интернета). Я расскажу, как использовать wget, чтобы скачивать сайты из интернета целиком и затем просматривать их в автономном режиме.
С помощью wget можно скачивать сайты, включая картинки, всего лишь указав адрес сайта и определенные параметры. wget будет автоматически переходить по ссылкам на сайте и скачивать страницу за страницей. Рассмотрим несколько примеров от простых к более сложным использования wget для скачивания сайтов.
Чтобы скачать сайт целиком с помощью wget нужно выполнить команду:
После выполнения данной команды в директорию site.com будет загружена локальная копия сайта site.com. Чтобы открыть главную страницу сайта нужно открыть файл index.html.
Рассмотрим используемые параметры:
-r — указывает на то, что нужно рекурсивно переходить по ссылкам на сайте, чтобы скачивать страницы.
-k — используется для того, чтобы wget преобразовал все ссылки в скаченных файлах таким образом, чтобы по ним можно было переходить на локальном компьютере (в автономном режиме).
-p — указывает на то, что нужно загрузить все файлы, которые требуются для отображения страниц (изображения, css и т.д.).
-l — определяет максимальную глубину вложенности страниц, которые wget должен скачать (по умолчанию значение равно 5, в примере мы установили 7). В большинстве случаев сайты имеют страницы с большой степенью вложенности и wget может просто «закопаться», скачивая новые страницы. Чтобы этого не произошло можно использовать параметр -l.
-E — добавлять к загруженным файлам расширение .html.
-nc — при использовании данного параметра существующие файлы не будут перезаписаны. Это удобно, когда нужно продолжить загрузку сайта, прерванную в предыдущий раз.
Мы рассмотрели лишь одно из возможных применений утилиты wget. На самом деле область применения wget значительно шире и wget обладает большим числом дополнительных параметров. За более подробной информацией обращайтесь к руководству, выполнив в командной строке: man wget .