Скачиваем сайты целиком - утилита 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.

Смотрите также:

Комментарии

11.03.2011, 14:53
Круто
Скачаю htmlbook.ru ;)
11.03.2011, 14:58
Удобно качать сайты на флешку а потом с ноутом на дачу ехать, инета нету, а сидишь что-нибудь интересное читаешь :)
11.03.2011, 15:59
Да, согласен Юр :)
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
Спасибо.
Юрий
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)
04.04.2011, 09:53
Попробовал, всё рано index.html качает, может так защита какая нибудь стоит??
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
ДА,поедей эта программа не легальна,я попробывал скачать сайт и залить его на бесплатный хост,и все робит!!
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 уровень?спасибо
san
21.11.2011, 18:35
Вот тоже прстая програмка, сайты скачивать http://www.httrack.com/
Добавить комментарий

Комментарий будет опубликован только после просмотра администратором сайта.

Электронная почта публиковаться не будет.
Введите символы, которые изображены на рисунке.
Кликните на изображение, чтобы сгенерировать новый код.