Как сохранить страницу сайта со всем ее зависимым содержимым?
Погоди.... Phantom.js это несколько другое.... 
Если тебе просто выкачать сайт нужно сохранив все пути и зависимые файлы, то юзай wget!wget -r -k -l 7 -p -E -nc http://site.com/
Где -r—указывает на то, что нужно рекурсивно переходить по ссылкам на сайте, чтобы скачивать страницы.-k—используется для того, чтобы wget преобразовал все ссылки в скаченных файлах таким образом, чтобы по ним можно было переходить на локальном компьютере (в автономном режиме).-p—указывает на то, что нужно загрузить все файлы, которые требуются для отображения страниц (изображения, css и т.д.).-l—определяет максимальную глубину вложенности страниц, которые wget должен скачать (по умолчанию значение равно 5, в примере мы установили 7). В большинстве случаев сайты имеют страницы с большой степенью вложенности и wget может просто «закопаться», скачивая новые страницы. Чтобы этого не произошло можно использовать параметр -l.-E—добавлять к загруженным файлам расширение .html.-nc—при использовании данного параметра существующие файлы не будут перезаписаны. Это удобно, когда нужно продолжить загрузку сайта, прерванную в предыдущий раз.P.S. ты пишешь что это будет сервис, тогда в принципе ничего сложного написать BASH реализацию скрипта. Однако нужно учитывать все тонкости твоей задачи...
Софтом типа teleport для винды или deep vacuum для мака