20070703

Как скачать сайт к себе на диск целиком

Бывает, что хочется иметь локальную копию какого-то сайта, чтобы можно было её просматривать, не подключаясь к Интернет, или чтобы сохранить её на будущее, на случай, если «оригинал» исчезнет.

Сделать это легко. Я часто использую скрипт siteget, написанный Джильсом Орром. По сути это всего лишь вызов программы wget c «правильным набором опций», однако вводить две строчки опций каждый раз лень :)

Итак,
  • скачайте скрипт siteget
  • поместите его в одно из мест, перечисленных в переменной окружения $PATH (я обычно держу такие вещи в ~/bin), и сделайте скрипт исполняемым (chmod a+x ~/bin/siteget)
  • скачивайте любые сайты одной командой: $ siteget АДРЕС_САЙТА.

Например, чтобы получить локальную копию своего блога, я выполняю
$ siteget http://sovety.blogspot.com/

После этого в текущем каталоге появляется подкаталог sovety.blogspot.com/. Его можно посмотреть любимым браузером (например, Firefox):
$ firefox sovety.blogspot.com/index.html

В большинстве случаев полученная копия вполне функциональна.

Те же, кто не хотят возиться со скриптом, могут использовать wget напрямую:
$ wget -m -k -nv -np -p --user-agent="Mozilla/5.0 (compatible; Konqueror/3.0.0/10; Linux)" АДРЕС_САЙТА


Для ограничения глубины скачивания можно ещё добавлять опцию -l глубина_ссылок. А при работе с плохим или ненадёжным соединением пригодятся опции -c -t 0.

Дополнение: заметно бОльшие возможности зеркалирования/скачивания сайтов предоставляет программа httrack.