Скриншот веб страницы

Иногда нужно сделать «нотариально заверенный» скриншот страницы для каких-либо целей. Как же это сделать? Есть множество методов подходящих для различных ситуаций, посему приступим.

Print ScreenВариант первый, наверное самый простой: print screen. Открываем страничку, нажимаем волшебную кнопку, и изображение оказывается в буфере обмена. Далее запускаем любой графический редактор (например paint), и нажимаем в нем магическую комбинацию shift-insert. Вуаля — изображение вставилось, далее осталось только сохранить его в удобном месте.

  • Плюсы: просто, работает с любыми браузерами, не требует никаких дополнительных программ, можно вырезать страницу не целиком, а только нужный кусочек. Также с минимальными изменениями метод подходит и для не-виндовс операционок.
  • Минусы: много телодвижений, вырежется только видимая часть страницы.

Поэтому приходим к варианту второму: как уменьшить число действий? На помощь может придти плагин к браузеру. Для FireFox есть такой плагин под названием Screengrab, страница каталога дополнений мозиллы https://addons.mozilla.org/ru/firefox/addon/1146. Если его поставить, то в меню по правому клику на странице появится соответствующий пункт, и с его помощью скриншот делается в пару кликов.

  • Плюсы: быстро, можно сделать скриншот вообще всей страницы или ее части.
  • Минусы: необходимо ставить дополнение, не для всех браузеров такие плагины есть.

Для большинства ситуаций один из этих методов проблему решит, но иногда нужны скриншоты для кучи страниц, или требуется автоматизация. Тут на помощь может придти полезная программка под названием CutyCapt. Она кроссплатформенна, бесплатна и свободна, а для рендеринга страниц использует движок webkit. Windows-версия доступна на странице проекта в уже скомпиленном виде, для других операционок необходимо скачать исходники из SVN и скомпилировать. Инструкция, опять же, доступна на странице проекта.

  • Плюсы: возможность полной автоматизации процесса.
  • Минусы: необходимо ставить программу, возможно даже компилировать. Использует только один движок, однако можно воспользоваться братом-близнецом той программы под названием IECapt, которая использует движок IE. Правда это уже не кроссплатформенно.

Некоторая тонкость: если хочется делать скриншот с сервера, у которого нет графического терминала, то тут придется чутка извратиться. Есть виртуальный X-сервер xvfb, который фактически рисует все в памяти, не используя экран. В пакет этой программы обычно так и называется: xvfb. Используется следующим образом:

xvfb-run --server-args="-screen 0, 1024x768x24" ./CutyCapt --url=... --out=...

Естественно разрешение  экрана можно поставить такое, которое нужно, а если требуется сделать много скриншотов — можно написать скрипт, который их делает, и запускать через xvfb-run уже его. Сэкономив тем самым на запуске X-сервера.