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

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

73

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 — программа для загрузки файлов
73

Комментарии

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

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

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

Чтобы скачать сайт в определенную директорию можно или сначала перейти в эту директорию командной cd, например:
cd /media/disk1
wget .....
Или использовать параметр -P, после которого указывает путь до директории, в которую вы хотите сохранить файлы:
wget ... -P /media/disk1 ...
Max
03.04.2011, 07:29
Постоянная ссылка на комментарий
Привет всем, у меня вопрос, как с помощью wget выкачивать с сайта файлы с конкретным расширением, например mp3, jpg и т.д.
yuriyАктивный
03.04.2011, 08:28
Постоянная ссылка на комментарийРодительский комментарий
Для этого применяется опция -A. После этой опции указывается список разрешенных для скачивания имен (точнее шаблонов имен файлов). Используется следующим образом:
wget -A.mp3 (скачать только mp3 файлы)
или
wget -A '.jpg,.jpeg' (скачать файлы с расширением jpg и jpeg)
Max
03.04.2011, 10:17
Постоянная ссылка на комментарийРодительский комментарий
Странно, когда я так писал, он мне только Индекс скачивал почему-то))) Я вот так писал например wget -A.jpg http://example.ru
Max
03.04.2011, 10: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 качает?? и так со всемы сайтами
yuriyАктивный
03.04.2011, 11:43
Постоянная ссылка на комментарийРодительский комментарий
Попробуйте вот так: wget -A.mp3 -p mail.ru
(С параметром -p)
Tamat
06.05.2014, 14:44
Постоянная ссылка на комментарийРодительский комментарий
Юрий, вам наверное стоило бы дополнить статью тем что вы написали в комментариях. Ни первый раз попадаю на эту страницу, а комментарии прочел первый раз и оказалось что в них есть еще интересные вещи.
Max
04.04.2011, 01:53
Постоянная ссылка на комментарий
Попробовал, всё рано index.html качает, может так защита какая нибудь стоит??
Fans
05.11.2013, 13:09
Постоянная ссылка на комментарийРодительский комментарий
такое бывает если на сайте стоит редирект с example.ru на www.example.ru, в таком случае нужно обращаться командой wget http://www.example.ru
bussel
22.04.2011, 07:45
Постоянная ссылка на комментарий
Все это, ребята, конечно, здорово, но вот вам тема для размышления: вы качаете сайт целиком, т.е. за короткий промежуток времени с вашего IP идет обращение к разным его страницам. А теперь представьте, как это воспримет администратор веб-сервера, на который идут ваши постоянные запросы к очень большому сайту, который вы выкачиваете? Думаю, что ваш IP просто заблокируют, так как такие действия очень похожи на попытку ввести сервер в штопор. Для маленьких сайтов это не критично, а вот в случае с большим ресурсом можно запросто попасть в черный список, а потом просить администрацию сайта снять бан.
Abschieber
22.04.2011, 13:45
Постоянная ссылка на комментарийРодительский комментарий
Специально для этого есть параметры wait, waitretry, random-wait.
Например wait:
-w seconds
--wait=seconds
Пауза в секундах между несколькими загрузками. Чтобы указать значение в минутах, используйте "m".
bananascss
23.04.2011, 15:28
Постоянная ссылка на комментарий
ДА,поедей эта программа не легальна,я попробывал скачать сайт и залить его на бесплатный хост,и все робит!!
tamat
07.01.2013, 01:27
Постоянная ссылка на комментарийРодительский комментарий
Поехавший
VolandАктивный
07.01.2013, 05:31
Постоянная ссылка на комментарийРодительский комментарий
Ты в курсе, что утилитой ab (apache benchmark) можно с нескольких ПК завалить не очень мощный сервер в очень глубокий отказ? Хотя это программа для нагрузочных тестов.

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

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

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

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

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

это?')
belyi22
26.09.2016, 12:12
Постоянная ссылка на комментарий
Доброго времени суток! Можно ли скачать сайт с авторизацией на нем? если нет то подскажите другую похожую программу которая могла бы так сделать?
Dexel
07.11.2016, 16: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, 02:31
Постоянная ссылка на комментарий
Возникла проблема. Картинки и стили лежат на поддоменах основного сайта media.site.com cdn.site.com при этом wget их не скачивает и не преобразовывает ссылки
Сергей
28.01.2017, 10:50
Постоянная ссылка на комментарий
А у меня пытаетя весь российский сегмент скачать(((
Давид
26.05.2017, 18:39
Постоянная ссылка на комментарий
Спасибо большое за статью!
А если такой случай.Сайт с видео файлами,автор сайта дает возможность скачать ролики,но открыв каждый ролик.Как скачать все ролики разом?
Спасибо большое,с уважением,Давид
VadimAndyАктивный
03.05.2018, 08:45
Постоянная ссылка на комментарийРодительский комментарий
ролики качают с помощью утилиты youtube-dl (если с ютуба), если нет - wget link.....Enter
Линуксоид
17.08.2017, 16:18
Постоянная ссылка на комментарий
Эта программа поскорости бьёт все аналогичные на windows и к тому же бесплатна! Линукс уже в чём-то обходит тот треш
Андрей
08.11.2017, 04:51
Постоянная ссылка на комментарий
На сайте, который меня интересует, существует много ссылок на документы в формате ПДФ, что нужно добавить в команду, чтобы файлы скачались вместе со всем остальным ?
su
09.11.2017, 02:07
Постоянная ссылка на комментарийРодительский комментарий
попробуй так wget -r -A *.pdf
[аноним]
10.11.2017, 01:23
Постоянная ссылка на комментарийРодительский комментарий
не выходит , скачивание останавливается почти сразу после запуска
VadimAndyАктивный
03.05.2018, 08:45
Постоянная ссылка на комментарийРодительский комментарий
wget -r -A http://site.ru/*.html
Сергей
24.01.2018, 07:56
Постоянная ссылка на комментарий
Добрый день. Подскажите пожалуйста, можно ли скачать закрытый раздел форума?
beliy
01.03.2018, 02:12
Постоянная ссылка на комментарий
Сайты с блогспота не выкачивает, только индексную страницу. httrack тоже самое. Не подскажете как можно решить вопрос?
VadimAndyАктивный
01.03.2018, 14:04
Постоянная ссылка на комментарийРодительский комментарий
wget -r -A http://site.ru/*.html
Родион
15.03.2018, 09:20
Постоянная ссылка на комментарий
У меня есть сайт я хочу его скачать скачиваю без проблем но вот вылазит окно с просьбой залогинится но когда я ввожу логин и пароль меня перекидывает на веб страницу что делать ?
VadimAndyАктивный
16.03.2018, 11:48
Постоянная ссылка на комментарийРодительский комментарий
выкинуть роутер и больше никогда его не включать =))
Евгений
20.04.2018, 05:26
Постоянная ссылка на комментарий
Если на сайте есть ссылки на внешние скрипты js например jquery и т.д какую команду дописать чтобы он то же выкачивал их а не с внешки тянул?
caen
28.04.2018, 02:24
Постоянная ссылка на комментарий
Ключи GNU-совместимых утилит можно объединять. Тоесть чтобы скачать сайт целиком, можно можно wget -rkpE -l 7 -nc
Ольга
30.04.2018, 16:22
Постоянная ссылка на комментарий
Как скачать сайт со всеми его поддоменами?
Сергей
17.07.2018, 13:53
Постоянная ссылка на комментарийРодительский комментарий
Может типа *.vk.com
alibaba070785
23.07.2018, 15:23
Постоянная ссылка на комментарий
а как с помощью данной утилиты скачать сайт который размещен в вебархиве. Те, что на данный момент работающие сайты - не проблема выкачать, а как быть с вебархивом, когда самого сайта в онлайне нет, но он присутствует в вебархиве?
Ключ вида:
wget -k -x -P -U -o -nv -e robots=off
и
wget -r -k -l 7 -p -E -nc

не работают
Может кто-то подскажет?
Увася
07.09.2018, 04:55
Постоянная ссылка на комментарий
Круто теперь точно Одноклассники для бабули скачаю.
bek
25.09.2018, 08:48
Постоянная ссылка на комментарий
как скачать php файлый и база данный
Влад
05.11.2018, 18:31
Постоянная ссылка на комментарий
расскажите подробнее что значит параметр "-l 7 " wget -r -k -l 7-p -E -nc в данной утилите , спрашиваю потому как вижу как люди ставят любую цифру , чаще всего "-l 1"
Acestor
06.11.2018, 02:09
Постоянная ссылка на комментарийРодительский комментарий
из man`а:
-l depth
--level=depth
Максимальная глубина рекурсивной загрузки depth. По умолчанию ее значение равно 5.

Сайт это набор папок и файлов, параметр depth указывает на сколько уровней вниз скачивать.
Ангела
08.11.2018, 09:13
Постоянная ссылка на комментарий
Это только на линукс? На виндовс10 работать не будет?

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

Ваше имя:
Текст комментария: