Скачиваем сайты целиком - утилита wget

wget — это утилита, которая предназначена для загрузки файлов по сети (из интернета). Я расскажу, как использовать wget, чтобы скачивать сайты из интернета целиком и затем просматривать их в автономном режиме.

С помощью wget можно скачивать сайты, включая картинки, всего лишь указав адрес сайта и определенные параметры. wget будет автоматически переходить по ссылкам на сайте и скачивать страницу за страницей. Рассмотрим несколько примеров от простых к более сложным использования wget для скачивания сайтов.

Чтобы скачать сайт целиком с помощью wget нужно выполнить команду:
wget -r -k -l 7 -p -E -nc http://site.com/

После выполнения данной команды в директорию site.com будет загружена локальная копия сайта http://site.com. Чтобы открыть главную страницу сайта нужно открыть файл index.html.

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

Мы рассмотрели лишь одно из возможных применений утилиты wget. На самом деле область применения wget значительно шире и wget обладает большим числом дополнительных параметров. За более подробной информацией обращайтесь к руководству, выполнив в командной строке: man wget.

Материалы по теме:
  • wget — программа для загрузки файлов
11.03.2011yuriy52

Комментарии

Активный
11.03.2011, 14:53
Круто
Скачаю htmlbook.ru ;)
Активный
11.03.2011, 14:58
Удобно качать сайты на флешку а потом с ноутом на дачу ехать, инета нету, а сидишь что-нибудь интересное читаешь :)
Активный
11.03.2011, 15:59
Да, согласен Юр :)
Сергей
05.07.2017, 11:32
что его скачаивать,я его 10 лет назад в формате htm скачал
Активный
11.03.2011, 20:44
а я ещё с винды привык к Httrack
http://www.httrack.com/page/2/en/index.html

f за wget спасибо... как-то не вникал в такую глубино его возможностей ☺
Amarok17
12.03.2011, 09:07
можете рассказать про параметр -i в даной утилите?
Активный
12.03.2011, 10:23
wget -i file
-i используется, чтобы указать URL (который мы хотим скачать) в файле с именем file (т.е. мы не в командной строке вводим URL, а URL'ы записаны в файле file).

Вместо имени файла можно поставить дефис "-" и тогда после ввода команды вы должны будете ввести URL (по одному на строку) прямо в командной строке. Чтобы закончить ввод, нажмите Ctrl+d.
Т.е. выполняем: "wget -i -", затем вводим URL по одному на строку и нажимает Ctrl+d.
Amarok17
12.03.2011, 21:19
Спасибо.
Влад
24.10.2012, 14:06
Не за что
марин
19.08.2014, 19:19
не за что
Юрий
13.03.2011, 09:56
Спасибо автору за статью! Никогда бы не подумал, что понадобится скачать сайт целиком. Вы yuriy вовремя, только скажите, как узнать размер сайта и можно ли направить сразу в другую директорию, ну например непосредственно на флешку?
Активный
13.03.2011, 22:15
Размер сайта скорее всего заранее узнать не получится.

Чтобы скачать сайт в определенную директорию можно или сначала перейти в эту директорию командной cd, например:
cd /media/disk1
wget .....
Или использовать параметр -P, после которого указывает путь до директории, в которую вы хотите сохранить файлы:
wget ... -P /media/disk1 ...
03.04.2011, 15:29
Привет всем, у меня вопрос, как с помощью wget выкачивать с сайта файлы с конкретным расширением, например mp3, jpg и т.д.
Активный
03.04.2011, 16:28
Для этого применяется опция -A. После этой опции указывается список разрешенных для скачивания имен (точнее шаблонов имен файлов). Используется следующим образом:
wget -A.mp3 (скачать только mp3 файлы)
или
wget -A '.jpg,.jpeg' (скачать файлы с расширением jpg и jpeg)
03.04.2011, 18:17
Странно, когда я так писал, он мне только Индекс скачивал почему-то))) Я вот так писал например wget -A.jpg http://example.ru
03.04.2011, 18:29
wget -A.mp3 mail.ru
--2011-04-03 20:28:06-- http://mail.ru/
Преобразование адреса mail.ru... 94.100.191.203, 94.100.191.204, 94.100.191.202, ...
Устанавливается соединение с mail.ru|94.100.191.203|:80... соединились.
Запрос HTTP послан, ожидание ответа... 200 OK
Длина: 118150 (115K) [text/html]
Saving to: «index.html»
Вот пример почему-то index качает?? и так со всемы сайтами
Активный
03.04.2011, 19:43
Попробуйте вот так: wget -A.mp3 -p mail.ru
(С параметром -p)
Tamat
06.05.2014, 22:44
Юрий, вам наверное стоило бы дополнить статью тем что вы написали в комментариях. Ни первый раз попадаю на эту страницу, а комментарии прочел первый раз и оказалось что в них есть еще интересные вещи.
04.04.2011, 09:53
Попробовал, всё рано index.html качает, может так защита какая нибудь стоит??
Fans
05.11.2013, 22:09
такое бывает если на сайте стоит редирект с example.ru на www.example.ru, в таком случае нужно обращаться командой wget http://www.example.ru
bussel
22.04.2011, 15:45
Все это, ребята, конечно, здорово, но вот вам тема для размышления: вы качаете сайт целиком, т.е. за короткий промежуток времени с вашего IP идет обращение к разным его страницам. А теперь представьте, как это воспримет администратор веб-сервера, на который идут ваши постоянные запросы к очень большому сайту, который вы выкачиваете? Думаю, что ваш IP просто заблокируют, так как такие действия очень похожи на попытку ввести сервер в штопор. Для маленьких сайтов это не критично, а вот в случае с большим ресурсом можно запросто попасть в черный список, а потом просить администрацию сайта снять бан.
22.04.2011, 21:45
Специально для этого есть параметры wait, waitretry, random-wait.
Например wait:
-w seconds
--wait=seconds
Пауза в секундах между несколькими загрузками. Чтобы указать значение в минутах, используйте "m".
23.04.2011, 23:28
ДА,поедей эта программа не легальна,я попробывал скачать сайт и залить его на бесплатный хост,и все робит!!
tamat
07.01.2013, 10:27
Поехавший
Активный
07.01.2013, 14:31
Ты в курсе, что утилитой ab (apache benchmark) можно с нескольких ПК завалить не очень мощный сервер в очень глубокий отказ? Хотя это программа для нагрузочных тестов.

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

Кстати, воровать чужой контент можно и при помощи браузера, и при помощи FTP, и SSH клиента. Так что, ты не прав. Утилита очень даже легальная.
frank
06.08.2011, 00:21
Вот так лучше делать если сайт целиком качать
wget -rp -np -nc --wait=45 -Q200m http://dls-mebli.com.ua/
sec
16.08.2011, 15:28
доброго времени суток, уважаемые, есть засада с попыткой скачать с http://tile.openstreetmap.org/ все .PNG - шные файлы, они лежат по уровням приближения и месторасположению. в корне HTML про переходы в папки ничего нет, как скачать хотя бы 4 - 5 или 15 уровень?спасибо
07.01.2013, 22:18
попробуй Merkaartor http://merkaartor.be/ или
JOSM http://josm.openstreetmap.de/
san
21.11.2011, 18:35
Вот тоже прстая програмка, сайты скачивать http://www.httrack.com/
Алексей
05.10.2012, 10:20
Подскажите а как скачать сайт с защитой? У меня есть сертификат, с помощью которого я могу заходить на сайт и авторизовываться. Т.е. получается защита и по сертификату и по по логинпароль.
Как в этом случае будет выглядеть команда?
Abba
20.12.2012, 21:28
Не скачивается CSS,хотя ключ p указан. Причем это только на одном сайте такое, остальные скачивал нормально
Sergiy
11.01.2017, 06:41
Значит файл css лежит на другом сервере.
chrome2
28.12.2012, 22:42
Скажите а как качать сайты которые на пароли
S
26.04.2013, 17:03
Не забирает картинки, которые в css в бэкграунде (background: url(../images/bg.png))
Евгений
29.07.2013, 15:45
Удобно. Как раз на дачу собрался.)
Теперь под рукой есть документация к compass.))
mikael
28.10.2013, 23:43
Спасибо большое за статью. Это именно то, что я искал - а главное штатными средствами системы.
Denis
10.11.2013, 06:33
можно ли выкачать сайт вместе со встроенным видео во флешплеере?
видео хранится также на этом же сайте
можете подсказать параметры ввода если wget такое умеет?
благодарю.
уксе8мниг
10.02.2014, 22:02
в автономном режиме не правильно переходит по ссылкам
открываю file:///C:/Downloads/78679.com/index.html
далее по ссылкам переходит в file:///wiki/например
а должен в file:///C:/Downloads/78679.com/wiki/например
как исправить?
Иуда
13.04.2014, 16:18
По умолчанию куда скачивается сайт ?
alex
10.05.2014, 02:49
в папку откуда запущен wget
Reedych
06.07.2015, 12:56
Да так же и весь интернет можно скачать))
Андрей
18.02.2016, 19:21
Спасибо автору за простой и понятный мануал
Иван
12.05.2016, 17:35
Почему-то скачивается только один файл.
Испробовал несколько вариантов, ничего не помогает
Использую ВДС, Центос.
Ant
13.05.2016, 19:11
Привет. Если тут еще отвечают на вопросы, то можно и Я задам.

Как скачать сайт, только после каждой скаченной страницы, чтобы можно было её модифицировать, через тем, как скачать следующую.

Поясню, если скачать сайт, то форма поиска не будет работать локально. Я бы хотел залезть в .html удалить по регулярному выражению форму и тогда пусть приступает к скачиванию другой страницы.

PS: Вариант, отредактировать всё уже после скачивания - вариант, однако спросил, можно ли делать всё сразу.
Пётр Владимирович
24.09.2016, 12:58
Подскажите пожалуйста, а можно ли скачивать не весь сайт, а только файлы определенного формата, например *.doc(x);*.pdf
Активный
25.09.2016, 17:45
http://pingvinus.ru/note/wget-download-sites#c2863

это?')
26.09.2016, 19:12
Доброго времени суток! Можно ли скачать сайт с авторизацией на нем? если нет то подскажите другую похожую программу которая могла бы так сделать?
Dexel
08.11.2016, 00:56
А вот этот не хочет:
wget -r -k -l 7 -p -E -nc http://www.codeprogress.com/
и без www
wget -r -k -l 7 -p -E -nc http://codeprogress.com/
:(
Денис
14.12.2016, 10:31
Возникла проблема. Картинки и стили лежат на поддоменах основного сайта media.site.com cdn.site.com при этом wget их не скачивает и не преобразовывает ссылки
Сергей
28.01.2017, 18:50
А у меня пытаетя весь российский сегмент скачать(((
Давид
27.05.2017, 01:39
Спасибо большое за статью!
А если такой случай.Сайт с видео файлами,автор сайта дает возможность скачать ролики,но открыв каждый ролик.Как скачать все ролики разом?
Спасибо большое,с уважением,Давид
Линуксоид
17.08.2017, 23:18
Эта программа поскорости бьёт все аналогичные на windows и к тому же бесплатна! Линукс уже в чём-то обходит тот треш

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

Ваше имя:
Текст:
Вы не зарегистрированы: комментарий будет опубликован только после просмотра администратором сайта.