Как скачать сайт по протоколу HTTP Печать
Добавил(а) microsin   

Иногда бывает нужно скачать весь сайт целиком, чтобы быстрее и удобнее изучить его структуру и содержание. Для этого есть специальные инструменты, которые рассмотрены в этой статье.

[HTTrack Website Copier]

Бесплатная программа с GUI-интерфейсом [1], очень удобная для большинства случаев. Копирует сайт целиком с нужной глубиной ссылок, все ссылки автоматически исправляются на локальные, так что после закачки сайта не нужно даже подключение к Интернету. Закачка создается очень просто - достаточно указать только имя проекта, корневую ссылку на сайт, и все остальные опции оставить по умолчанию. Если же нужно ввести ограничения (на глубину просмотра сайта, на объем закачанных файлов) или задать другие опции, то настройте опции проекта (кнопка Set options...). Основные настройки расположены на закладках Scan Rules и Limits.

HTTrack-Website-Copier-setup-project HTTrack-Website-Copier-project-options

Если на сайте нет файла странички по умолчанию index.html (index.html, index.php, default.html, ...), то WinHTTrack Website Copier выдаст ошибку "** MIRROR ERROR! ** HTTrack has detected that the current mirror is empty. If it was an update, the previous mirror has been restored." Это происходит на сайтах, которые организованы просто как хранилище файлов и папок, и на сервере разрешена опция просмотра директорий (Directory Browsing). Такие случаи редки (просмотр директорий WWW сервера обычно защищают в целях безопасности), но все же бывают.

HTTrack-Website-Copier-missing-index-html

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

[Wget for Windows]

Утилита командной строки wget изначально была разработана под xNIX (Linux), но теперь есть доступный порт wget для Windows [2]. С помощью wget можно закачивать как отдельные файлы, так и делать полное зеркало сайта целиком. Установить wget под Windows довольно просто, процесс по шагам (все ссылки на закачку см. в [2]):

1. Скачать и установить sed-4.2.1-setup.exe.
2. Скачать wget-1.11.4-1-bin.zip, распаковать папки в нем в ту же структуру каталогов, какая есть в c:\Program Files\GnuWin32\.
3. Скачать файлы зависимостей (DLL) wget-1.11.4-1-dep.zip (если их нет), распаковать в ту же структуру каталогов какая есть в c:\Program Files\GnuWin32\.
4. Теперь можно запустить wget из командной строки, перейдя в папку c:\Program Files\GnuWin32\bin\ (cmd -> wget.exe).

Примеры использования wget

wget -m http://microsin.net/

В этом примере будет закачан сайт целиком, с сохранением на страницах оригинальных ссылок.

wget-for-windows-running

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

wget -mk http://microsin.net/

Для того, чтобы ограничить загрузку канала сетевого подключения при закачке. Если Вы будете закачивать сайт без ограничений, то администратор может Вас отключить. Можно ввести паузу между закачками, например в 20 секунд, тогда загрузка с сайта будет выглядеть естественной: 

wget -mk -w 20 http://microsin.net/

Можно задать другое число, а также указывать суффиксы m для минут, h для часов, d для дней.

Чтобы скачать только одну папку, может оказаться полезной опция -np (no parent):

wget -mk -np http://example.com/subfolder/

Если эту опцию не указать, то wget будет также просматривать и закачивать родительскую папку (example.com для нашего примера).

Еще пример:

wget -rkpNl5 www.sysadmin.md

-r — скачивать содержимое рекурсивно
-k — преобразовать ссылки в файлах, чтобы их можно было просматривать локально
-p — загружать все подряд - встроенные изображения (inlined images), звуки, связанные таблицы стилей (referenced stylesheets)
-N — включение меток времени (time-stamping)
-l5 — максимальный уровень глубины рекурсии (просмотра) равен 5

Подробности по использованию wget см. в справе man wget.

[Ссылки]

1HTTrack Website Copier - Free Software Offline Browser (GNU GPL).
2. Wget for Windows