Как закачать весь сайт и читать его с диска?

Закачиваем весь сайт на диск

Нашёл с помощью поисковой системы интересный ресурс: курс лекций Мухина Олега Игоревича  «Моделировании систем». Однако прямой заход требует указания пароля (http://www.stratum.ac.ru/textbooks/modelir/)

 

Но к сожалению авторов ресурса поисковая система даёт ссылки в обход пароля. Просто вот так http://www.stratum.ac.ru/textbooks/modelir/contents.html

Мне интересно почитать на досуге эти лекции (спасибо О.И.Мухину) и вопрос, как скачать весь курс сайта.

У меня OS Linux/Ubuntu следовательно есть консольная программа wget.
Открываю терминал и создаю каталог куда буду закачивать курс лекций:

mkdir ~/mm
cd ~/mm

и следующей командой всё закачиваю:

wget -r -l0 -k http://www.stratum.ac.ru/textbooks/modelir/contents.html

теперь чтобы почитать запускаю в браузере файл:

~/mm/www.stratum.ac.ru/textbooks/modelir/contents.html

все ссылки работают корректно, так как wget всё исправил при загрузке

И ниже идут записки на память

Нужно просто скачать файл и/или продолжить закачку, которая оборвалась. Это очень и очень легко сделать, не запуская GUIёвых программ, а открыв только терминалку.

Просто скачать файл wget-ом

wget ftp://vasya.pupkin.com/film.avi

Это было не трудно, так ведь? Ещё вариант: часть файла скачана, закачка оборвалась.

Для продолжения файла закачки пишем:

wget -c ftp://vasya.pupkin.com/film.avi

или

wget -continue ftp://vasya.pupkin.com/film.avi

Вместо -с можно написать -continue, так как каждый ключ имеет короткую и длинную формы: длинные ключи проще запомнить, но дольше писать. Можно легко смешивать различные формы написания.

Чтобы выкачать файлы из списка, содержащего прямые ссылки:

wget -i pupkinlist

или

wget -input-file=pupkinlist

Здесь указывается только файл, в котором содержатся ссылки. Файл может так же быть HTML-страницей, в которой есть ссылки. Они будут выкачаны указанной выше командой.

Использование а-ля «Teleport Pro for Linux»

При скачивании веб-сайтов возможностей больше, и поэтому требуется больше ключей. Опять-таки, запоминать их все не обязательно, можно сделать скрипт (а лучше несколько — под разные случаи) и вызывать их.

Так вот, если имеется веб-сайт, и хотелось бы иметь его локальную копию на компьютере, чтобы, отключившись от сети, можно было неторопясь его почитать.

Зеркалирование сайтов на локальную машину:

wget -m http://www.vasyapupkin.com/

Это эквивалентно -r -N -l inf -nr, поэтому напишу подробнее про эти опции.

Замечу, что при этом ссылки останутся абсолютными — то есть, будут указывать на Интернет-адреса, и удобно просматривать на локальной машине будет затруднительно.

Копирование сайта для локального просмотра:

wget -r -l0 -k http://www.vasyapupkin.com/

При этом будет включена рекурсивная выгрузка (ключ -r, —recursive),

-np --no-parent

Не подниматься выше начального адреса при рекурсивной загрузке.

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

-r | -recursive

Включить рекурсивный просмотр каталогов и подкаталогов на удал©нном сервере.

-l depth | -level=depth

Определить максимальную глубину рекурсии равной depth при просмотре каталогов на удалённом сервере. По умолчанию depth=5.

-np | -no-parent

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

-A acclist | -accept acclist
-R rejlist | -reject rejlist

Определить разделённые запятыми списки суффиксов имён файлов или шаблонов, чтобы принять или отвергнуть копирование файлов. Подробнее смотрите раздел 13.4.3.

-k | -convert-links

Превратить абсолютные линки в HTML документе в относительные линки. Преобразованию подвергнутся только те линки, которые указывают на реально загруженные страницы; остальные не будут преобразовываться.

Заметим, что лишь в конце работы Wget сможет узнать какие линки были реально загружены. Следовательно, лишь в конце работы Wget будет выполняться окончательное преобразование.

http-user=user
-http-passwd=password

определить имя пользователя как user и пароль как password на HTTP сервере. В соответствии с типом обращения, Wget будет кодировать эти параметры с использованием одной из схем кодирования: basic (не секретная) и digest.

-A acclist --accept acclist -R rejlist --reject rejlist

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

-H --span-hosts

Разрешает посещать любые сервера, на которые есть ссылка.

-p --page-requisites

Загружать все файлы, которые нужны для отображения страниц HTML. Например: рисунки, звук, каскадные стили.

По умолчанию такие файлы не загружаются. Параметры -r и -l, указанные вместе могут помочь, но т.к. Wget не различает внешние и внутренние документы, то нет гарантии, что загрузится все требуемое.

-k --convert-links

После завершения загрузки конвертировать ссылки в документе для просмотра в автономном режиме. Это касается не только видимых ссылок на другие документы, а ссылок на все внешние локальные файлы.

Каждая ссылка изменяется одним из двух способов:

* Ссылки на файлы, загруженные Wget изменяются на соответствующие относительные ссылки.

Например: если загруженный файл /foo/doc.html, то ссылка на также загруженный файл /bar/img.gif будет выглядеть, как ../bar/img.gif. Этот способ работает, если есть видимое соотношение между папками одного и другого файла.

* Ссылки на файлы, не загруженные Wget будут изменены на абсолютные адреса этих файлов на удаленном сервере.

Например: если загруженный файл /foo/doc.html содержит ссылку на /bar/img.gif (или на ../bar/img.gif), то ссылка в файле doc.html изменится на http://host/bar/img.gif.

Благодаря этому, возможен автономный просмотр сайта и файлов: если загружен файл, на который есть ссылка, то ссылка будет указывать на него, если нет — то ссылка будет указывать на его адрес в интернет (если такой существует). При конвертировании используются относительные ссылки, значит вы сможете переносить загруженный сайт в другую папку, не меняя его структуру.

——-
Источник: черпаю информацию на сайтах посвящённых Ubuntu ( 1 ) ( 2 ) ( 3 )