- BrainTools - https://www.braintools.ru -
Я знаю, что существует 100500 способов перекинуть картинку в готовую вёрстку.
Но когда у меня дошло до дела, результат оказался так себе.
То ли я криворукий, то ли все эти инструменты ещё далеки от совершенства.
В итоге понял, что мне проще накидать свой собственный велосипед — скрипт на Python (~200 строк).
Решил выложить, может, кому-то пригодится.
Скрипту можно скормить три скриншота сайта:
Десктоп-версия
Планшет
Мобильная версия
На выходе получим одну HTML-адаптивную вёрстку (десктоп, планшет, мобила) с использованием Tailwind CSS [1].
Вот так скрипт отработал на хабре:

На вкус [3] и цвет фломастеры разные, но по мне в tailwind Хабр становится красивее.
Для теста ещё, РБК-инвестиции пробовал заскринить и получить HTML.


https://codepen.io/Rilkener/pen/NPGyWeb [5]

Быстро через DevTools:
Десктоп: 1440×900 (viewport). Масштаб 100%
Мобильный: Mobile S — 320 px
Планшет: 768×1024 (iPad портрет)
CTRL + SHIFT + P внутри меню разработчика и дальше выбрать
Capture full size screenshot
Проверяйте скриншоты.
Если DevTools не справился — используйте плагины:
GoFullPage [6] (Chrome/Opera/Edge) — делает полный скриншот всей страницы.
Fireshot [7]— то же самое, но можно обрезать, выбрать область.
Зарегистрироваться на https://platform.openai.com/docs/overview [8] и получить ключ API.
Далее
git clone https://github.com/Rilkener/screen2html.git
cd screen2html
pip install -r requirements.txt
Положите скриншоты в папку data/input/, например:
data/input/desktop.png
data/input/mobile.png
data/input/tablet.png
Запуск:
python screen2html.py data/input/desktop.png
--mobile data/input/mobile.png
--tablet data/input/tablet.png
--api-key 'YOUR_API_KEY'
--model gpt-5
--out data/screen2html.html
Если все пройдет без ошибок скрипт отдаст готовый html.
Ссылка на гитхаб: https://github.com/Rilkener/screen2html [9]
Модель будет пытаться подобрать стандартные цвета от tailwind в виде классов.
Если принципиально, чтобы цвета совпадали, то можно просто пробежаться
и заменить их таким образом: bg-[#ваш_hex], text-[#ваш_hex], border-[#ваш_hex].
Возможно, какие-то элементы будут неадаптивные, и с этим отдельно придётся немного поваландаться.
На 15 августа 2025 года за скрины Хабра с меня взяли $0.12, ну или около 9 руб. Делала это модель gpt-5. Если бы это была gpt-4, было бы ещё дешевле.
Я не пробовал жать и оптимизировать скриншоты, и не знаю, как модель при этом справится.
Если скрин весит, например, 1.5 MB, а после оптимизации станет 400 KB, то base64-строка уменьшится примерно в 3 раза → токенов уйдёт меньше.
Если не принципиален PNG (без альфа-канала, без идеальной чёткости), то можно перегонять в JPEG с качеством 85–90%. Визуально почти не заметно, а вес упадёт в 3–5 раз.
Теоретически, можно, наверное, и в 2 рубля уложиться.
Автор: Rilkener
Источник [10]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/18414
URLs in this post:
[1] Tailwind CSS: https://tailwindcss.com/
[2] https://codepen.io/Rilkener/pen/YPyezJo: https://codepen.io/Rilkener/pen/YPyezJo
[3] вкус: http://www.braintools.ru/article/6291
[4] https://codepen.io/Rilkener/pen/KwdQKrq: https://codepen.io/Rilkener/pen/KwdQKrq
[5] https://codepen.io/Rilkener/pen/NPGyWeb: https://codepen.io/Rilkener/pen/NPGyWeb
[6] GoFullPage: https://chromewebstore.google.com/detail/gofullpage-full-page-scre/fdpohaocaechififmbbbbbknoalclacl?pli=1
[7] Fireshot : https://chromewebstore.google.com/detail/take-webpage-screenshots/mcbpblocgmgfnpjjppndjkmgjaogfceg?hl=ru
[8] https://platform.openai.com/docs/overview: https://platform.openai.com/docs/overview
[9] https://github.com/Rilkener/screen2html: https://github.com/Rilkener/screen2html
[10] Источник: https://habr.com/ru/articles/937454/?utm_campaign=937454&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.