Моя цель - иметь изображение веб-сайта (да, так просто). Я знаю, что есть такие инструменты, как html2canvas. Однако я не хочу, чтобы клиентский браузер отображал скриншот.
Одна из причин заключается в том, что я использую расширение chrome с webview, которое по существу ведет к сравнению iFrame
. По соображениям безопасности создание скриншота для веб-сайта, содержащего iFrame
, не работает.
Я также знаю, что они работают над возможностью изначально поддерживать захват скриншотов веб-сайтов, но я хочу использовать кросс-браузер и не зависеть от возможности браузера, Все это происходит на сервере, поэтому он должен исполняться через командную строку.
Теперь я делаю следующее:
- Открыть браузер через командную строку
- Переключить фокус в окно браузера с помощью командной строки
- Сделать снимок экрана (screencapture на mac, scrot на Linux) через командную строку
Выполнение этого на этом базовом уровне имеет недостаток изображения, содержащего строки состояния, файлы плагинов браузера и т.д. Фактически я хочу только иметь фактический контент веб-сайта без использования всех этих приложений.
- Худшим решением было бы жестко закодировать позицию 0 | 0 контента относительно окна для каждого браузера. Это дерьмо (по понятным причинам).
- Еще одно решение, которое я придумал: скажите браузеру (я могу говорить к плагину через сокет), чтобы добавить что-то вроде QR-кода в x: 0; y: 0;, отправить скриншот на сервер обработки изображений. После этого удалите QR-код и снова отправьте снимок экрана. Затем я знать каждую точку относительно 0 | 0, но она также не такая элегантная.
Лучше всего будет инструмент командной строки, который каким-то образом позволяет мне определить, какую часть приложения я хочу захватить.
Примером является этот плагин для Firefox или этот серверный инструмент или все эти инструменты, обеспечивающие скриншоты сайтов с разными браузерами и ОС, таких как . Интересно, как они избавляются от элементов GUI, специфичных для браузера.
Добавление
Я не знаю, достаточно ли я сделал это достаточно, но хочу скриншот содержимого определенного браузера, но без элементов интерфейса GUI для браузера. Это означает, что приложение, работающее без браузера, не будет использовать меня. Потому что безглавый браузер имеет свой собственный движок. Я специально хочу иметь скриншот, например. Firefox версии x.