Автор Тема: Скачивать сайты целиком  (Прочитано 1383 раз)

Оффлайн ivm

  • Ветеран
  • *****
  • Сообщений: 2298
Скачивать сайты целиком
« : 17 Августа 2015, 21:00:45 »
О-о-очень давно, в диалабовские времена, мой друг Денис предпочитал ночью скачивать сайты целиком (из-за низкой скорости соединения), а днем читать их в автономном режиме, без ожиданий, пока страница загрузится. Пользовался  Денис программой Teleport-Pro, которая не только переходила в глубину сайта на заданное число ссылок, но и слинковывала скачанное для последующего просмотра сайта офлайн. Передо мной стояла задача скачать множество мелких файликов с сайта, который мог исчезнуть в любой момент. Кликать по одному файлу - муторно и скучно, поэтому я и вспомнил Дениса. Ведь можно скачать страницу, с которой я загружаю файлы со всеми ссылками, за которыми находятся файлы, вместе с файлами  единой командой, которую отыскал всеведущий Google.   
Цитата: /pingvinus.ru/note/wget-download-sites
Чтобы скачать сайт целиком с помощью 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   —   при использовании данного параметра существующие файлы не будут перезаписаны. Это удобно, когда нужно продолжить загрузку сайта, прерванную в предыдущий раз.
Сложилось такое впечатление, что поскольку команду запускал ~$ как есть после открытия терминала, то в домашнюю папку и легла скачанная папка, следующий раз надо будет попробовать, запустить в другом месте (после перехода на примонтированный жесткий диск, к примеру, в таком случае папка создалась на HDD (проверено).
PS. Замучился бы кликать, если бы не эта команда.

Получается, что в папке, куда качался сайт, появляется папка с именем сайта, внутри которой, среди прочего есть файлик index.html.Открываю его в браузере - открывается главная страница сайта. При этом в адресной строке уже не http://, а file:// и путь к папке, где лежит всё это хозяйство. При переходе по ссылке переходит на file://, то есть ссылки перелинкованы из сети на диск, как и в телепорте.

У Wget есть Help, вызываем командойwget --helpА в ответ описание всех ключей...
Что непонятно спрашиваем, если всё понятно - пользуемся.
Что бы ни случилось, всё будет хорошо!

Оффлайн vita

  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3570
  • Да будет свет!
Re: Скачивать сайты целиком
« Ответ #1 : 17 Августа 2015, 21:01:41 »
Если нужна только отдельная страница сайта, где размещена книга в HTML-формате для последующего открытия в веббраузере без подключения к интернету, можно скачать командой, например,
wget -r -k -l 2 -p -E -np http://rus-linux.net/MyLDP/BOOKS/LSA/toc.htmlИз загруженного каталога полезным может оказаться только каталог LSA, остальное можно удалить. Каталог LSA можно переименовать и запускать из него в веббраузере файл toc.html.
P.s.: подсказано пользователем ek-nfn, за что ему выражаю благодарность.
Делай с нами, делай как мы, делай лучше нас!