Blog. Just Blog

Создание скриншотов сайтов с помощью Headless Chrome

Версия для печати Добавить в Избранное Отправить на E-Mail | Категория: Web-мастеру и не только | Автор: ManHunter
Создание скриншотов сайтов с помощью Headless Chrome
Создание скриншотов сайтов с помощью Headless Chrome

Ранее я рассказывал о сервисах для создания скриншотов сайтов, но время не стоит на месте. Если у вас в распоряжении есть свой сервер, то вы легко сможете организовать собственный сервис для создания скриншотов сайтов. Начиная с версии 59, браузер Chrome может работать в так называемом "безголовом" режиме, то есть он реально не отрисовывает содержимое web-страницы, а все формирует в памяти. При этом он работает из командной строки и может быть установлен на сервер.

Начнем с установки. У нас рабочий сервер крутится на CentOS 7, поэтому команды установки будут следующими:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

yum install -y ./google-chrome-stable_current_*.rpm

Для других версий Linux используйте соответствующие команды. Если все сделано правильно, то Chrome будет доступен для запуска из командной строки. На самом деле Chrome поддерживает великое множество параметров, но нас интересуют только те, с помощью которых мы будем делать скриншот сайтов. Например, делаем скриншот главной страницы Яндекса:

/opt/google/chrome/chrome --no-sandbox --headless --disable-gpu --screenshot https://www.yandex.ru

После выполнения команды в текущей папке будет создан файл screenshot.png. Усложняем задачу. Если надо сделать скриншот не всей страницы, то можно задать размеры рабочего окна:

/opt/google/chrome/chrome --no-sandbox --headless --disable-gpu --window-size=1200,2000 --screenshot https://www.yandex.ru

В некоторых случаях может потребоваться доступ через прокси, для этого в командую строку добавляются два параметра (в приведенном примере прокси с авторизацией):

/opt/google/chrome/chrome --no-sandbox --headless --disable-gpu --proxy-server=socks5://ip:port@login:password --proxy-bypass-list=* --window-size=1200,2000 --screenshot https://www.yandex.ru

Чтобы не было конфликтов с именами файлов, особенно при многопоточном создании скриншотов, а также чтобы на диске был порядок, можно и нужно указывать, куда и под каким именем сохранять скриншот. Делается это в настройке параметра --screenshot:

/opt/google/chrome/chrome --no-sandbox --headless --disable-gpu --proxy-server=socks5://ip:port@login:password --proxy-bypass-list=* --window-size=1200,2000 --screenshot=/images/my_screenshot_100500.png https://www.yandex.ru

В этом случае скриншот будет сохранен в папку /images под именем my_screenshot_100500.png. Под Linux может понадобиться коррекция прав доступа к свежесозданному скриншоту, по крайней мере у нас приходится дополнительно запускать команду chmod 0644, чтобы PHP-скрипты могли с ним дальше работать.

Пользователи Windows-версии Chrome, в том числе и его форков, также могут запускать свой браузер в "безголовом" режиме, все перечисленные параметры работают и для него.

Поделиться ссылкой ВКонтакте Поделиться ссылкой на Facebook Поделиться ссылкой на LiveJournal Поделиться ссылкой в Мой Круг Добавить в Мой мир Добавить на ЛиРу (Liveinternet) Добавить в закладки Memori Добавить в закладки Google
Просмотров: 385 | Комментариев: 3

Комментарии

Отзывы посетителей сайта о статье
A1eksandr1 (05.12.2019 в 22:13):
Видимо сарказм был в хромоножках.
Типа юзать нужно лису или ещё чего
ManHunter (04.12.2019 в 07:15):
Не понял сарказма или шутку юмора или чо это было.
дегенерат (04.12.2019 в 03:03):
ЦитатаChrome

А я думал такой олдскульный кулхакир браузером пользуется

Добавить комментарий

Заполните форму для добавления комментария
Имя*:
Текст комментария (не более 2000 символов)*:

*Все поля обязательны для заполнения.
Комментарии, содержащие рекламу, ненормативную лексику, оскорбления и т.п., а также флуд и сообщения не по теме, будут удаляться. Нарушителям может быть заблокирован доступ к сайту.
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2019
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.1 сек. / MySQL: 2 (0.0046 сек.) / Память: 4.75 Mb
Наверх