Если по каким-то причинам нужно сделать локальную копию сайта (например, если нужно работать над материалами, но доступ в Интернет не предвидится), то обычно нет смысла искать дополнительный софт, тем более платный. Есть консольная программа wget (The non-interactive network downloader), которую можно поставить через MacPorts (sudo port install wget).

Синтаксис:

wget -v -m -k -K -E -w 1 --output-file=wget.log http://www.notsecretsite.com/

  • -v – показывать процесс списывания;
  • -m – сделать копию сайта (если говорить на нормальном русском языке, то мирроринг). Заменяет набор ключей “-r -N -l inf –no-remove-listing”.
  • -k – преобразовать ссылки, адаптируя их для локального просмотра. Например, если списывается /foo/doc.html со ссылкой на /bar/img.gif, то в локальной копии будет записано ../bar/img.gif.
  • -K – опция осталась для меня загадкой, вроде бы она должна использоваться совместно с ‘-k’ для определения, изменился ли файл на сервере.
  • -E – если тип списанного контента был ‘application/xhtml+xml’ или ‘text/html’, и его расширение не .html (грубо говоря, а реально не удовлетворяет шаблону ‘\.[Hh][Tt][Mm][Ll]?’), то добавить .html к имени.
  • -w 1 – ждать 1 секунду перед следующим запросом на списывание файла. Можно поставить больше. Полезно, если сервер блокирует за частое списывание.
  • –output-file=wget.log – писать процесс работы в лог-файл.
  • Если же доступ к сайту даётся только после аутентификации по HTTP, то формат команды такой (добавляются –user и –password):

    wget -v -m -k -K -E -w 1 --user=user --password=secret --output-file=wget.log http://www.secretsite.com/
    

    Если же используется аутентификация через форму в html, да ещё с использованием сессионных coockies, то в принципе побороть это можно, но требует ухищрения. Опишу это отдельно, сейчас у меня нет под рукой такого сайта.