Simon Willison выпустил shot-scraper 1.12 — небольшое, но целевое обновление CLI-инструмента для автоматических скриншотов. Главное: поддержка формата WebP. Команда shot-scraper https://simonwillison.net -o screenshot.webp --quality 80 делает снимок страницы, и файл получается существенно меньше, чем PNG или JPEG. Без флага --quality — lossless-режим для точных архивов.
Контекст
Simon Willison — один из самых цитируемых практиков в LLM-сообществе. Создатель Datasette, автор ежедневного технического блога, где он разбирает инструменты, агентные системы, эксперименты с языковыми моделями. Его репозитории — не академические упражнения, а реально используемые утилиты, которые запускаются в CI-пайплайнах по всему миру.
shot-scraper работает поверх Playwright и закрывает простую задачу: передаёшь URL или HTML-файл, получаешь изображение. Умеет обрезать область, масштабировать, дожидаться нужного состояния DOM. Применяется в визуальном тестировании, мониторинге страниц, генерации превью, автоматической документации.
Причина обновления конкретная: Willison создавал новый инструмент commit-rewriter и понадобились лёгкие превью-скриншоты для него. Вместо PNG добавил WebP-поддержку в shot-scraper и сразу применил сам. Классический open source паттерн: решаешь собственную задачу — делишь результат с сообществом.
Аналитика
WebP давно является стандартом для веба, но до недавнего времени developer-инструменты поддерживали его непоследовательно. Разница в весе ощутима: при визуально незаметной потере качества WebP с параметром --quality 80 получается существенно компактнее JPEG или PNG того же содержимого — это справедливо практически для любого скриншота страницы.
Особенно это важно в AI-пайплайнах. Когда скриншот попадает в контекст LLM как визуальный ввод — его вес напрямую влияет на количество токенов и стоимость запроса. Computer use агенты, мониторинговые системы интерфейсов, автоматические ревью UI — все они работают с изображениями постоянно. Переход с PNG на WebP здесь не косметика, а экономия на каждом вызове модели.
Параметр --quality даёт важный контроль. Без него — lossless WebP с максимальной точностью, для архивов и детального анализа. С --quality 80–85 — баланс между весом и качеством, идеально для превью, документации, CI-артефактов. Маленький флаг, а разница в производительности пайплайна — заметная.
Кейсы применения в бизнесе
B2B-SaaS стартап. Визуальное регрессионное тестирование UI: shot-scraper запускается в GitHub Actions перед каждым мёржем в main, сравнивает текущий снимок с эталоном. С переходом на WebP хранилище CI-артефактов сокращается, скорость сравнения diff-снимков растёт. Ничего лишнего — инструмент, одна команда, шаг в пайплайне.
Корпорация с legacy. Мониторинг внутренних дашбордов и устаревших систем, куда нет API. Cron-задача раз в час делает скриншоты ключевых страниц и складывает в облачное хранилище в WebP. При инциденте — визуальная история состояния без ручного вмешательства и без тяжёлых PNG.
SMB и локальный бизнес в КР/СНГ. Отслеживание конкурентов, цен, акций — без сложного парсинга и без платных SaaS-мониторингов. shot-scraper настраивается на нужные URL, скриншоты копятся в папке, маркетолог просматривает изменения раз в день. Никаких API-ключей, никаких подписок.
Кейсы в личной жизни
Разработчик. Автоматические скриншот-превью для каждого коммита или PR — без открытия браузера. Один шаг в GitHub Actions: shot-scraper сохраняет WebP, аттачит к релизным нотам. Ровно то, ради чего Willison и добавил поддержку формата в commit-rewriter.
Контент-мейкер и блогер. Обложки для статей без Figma: shell-скрипт делает скриншот страницы, обрезает до нужного соотношения сторон, сохраняет в WebP. Один терминал вместо пяти вкладок для типовых превью. Плюс автоматизируется без боли.
Студент и исследователь. Архивирование страниц для дипломных работ и исследований: Python-скрипт обходит список URL, shot-scraper сохраняет визуальные снимки. WebP экономит место при архивах на сотни страниц. Важно: это снимок визуального состояния страницы — не замена полноценному HTML-архиву, но для быстрой фиксации вполне достаточно.
Как применить сегодня
- Установить:
pip install shot-scraper, затемshot-scraper install— скачает нужный Playwright-браузер - Первый WebP-скриншот с балансом качества:
shot-scraper URL -o preview.webp --quality 80 - Lossless для архивов и точного анализа:
shot-scraper URL -o archive.webp— без флага--quality - Добавить шаг в GitHub Actions или cron для автоматических снимков UI перед деплоем
- Интегрировать с LLM-агентом: WebP-скриншот как визуальный контекст — меньше токенов на тот же результат