12 июля 2026 года Саймон Уиллисон выпустил shot-scraper 1.11 — обновление своего CLI-инструмента для автоматизированных скриншотов и веб-скрейпинга. Изменений немного, но они закрывают реальные боли: серверные процессы больше не падают через секунду, а JS-скрипты можно подтягивать прямо из GitHub без копирования кода.
Контекст
shot-scraper — CLI-обёртка поверх Playwright, которую Уиллисон (сооснователь Django) развивает как часть своей экосистемы open-source инструментов. Инструмент умеет делать скриншоты страниц, генерировать PDF, вытаскивать HTML, строить HAR-файлы, проверять доступность и записывать видео сессий — всё это без GUI, одной командой в терминале.
Команды shot-scraper multi и shot-scraper video поддерживают режим server:: инструмент сам запускает локальный сервер перед скрейпингом. До версии 1.11 таймаут на старт был жёстко зашит на одну секунду — слишком мало для Docker-контейнеров, Next.js с холодным стартом или нагруженных CI-сред. Новый механизм polling ждёт до 30 секунд, проверяя доступность порта.
Уиллисон активно использует LLM в разработке своих утилит — в соседнем релизе sqlite-utils 4.0rc2 он сам написал, что большую часть кода создал Claude Fable примерно за $149.25. Это показательный паттерн: небольшие точечные CLI-утилиты, которые решают одну задачу и решают её хорошо, при этом сам процесс разработки становится AI-ассистированным.
Аналитика
Два ключевых изменения в 1.11 — не косметика, а устранение реальных точек отказа. Фиксированная задержка в одну секунду — классический пример хрупкой автоматизации: скрипт работает на мощном десктопе разработчика и падает в CI, где среда холоднее. Новый polling с ожиданием до 30 секунд делает инструмент пригодным для production pipeline'ов без дополнительных костылей вроде sleep.
Опция --js-file с синтаксисом gh:username/script открывает путь к переиспользуемым библиотекам скриптов в публичных GitHub-репозиториях. Один раз написал парсер — подключаешь во всех проектах без копирования. Для команд, которые строят стандартизированные pipeline'ы мониторинга, это заметное упрощение: список URL в YAML, общий скрипт через js_file: — и всё работает единообразно.
В целом shot-scraper 1.11 отражает зрелый подход к CLI-инструменту: исправлять edge cases, выравнивать консистентность флагов (опция --timeout теперь есть у команд javascript и html наравне с другими), не ломать обратную совместимость. Для разработчика-одиночки, поддерживающего десятки open-source проектов при помощи LLM, это здоровая гигиена релизного цикла.
Кейсы применения в бизнесе
B2B SaaS стартап. Автоматический мониторинг конкурентов: shot-scraper multi запускается по расписанию против списка страниц конкурентов, скриншоты складываются в хранилище, при изменении — алерт в мессенджер. Всё без Selenium-стека. Опция js_file: в YAML позволяет подключить стандартный парсер сразу для всего списка URL — не нужно дублировать логику в каждой записи.
Корпорация с legacy-фронтендом. Регрессионное тестирование UI без переписывания тестов: снимать скриншоты ключевых страниц до и после деплоя, visual diff выявляет сломанные компоненты. Playwright не требует адаптации под конкретный фреймворк — работает с любым браузерным рендерингом, хоть с jQuery-приложением двенадцатилетней давности.
SMB и локальный бизнес в КР/СНГ. Мониторинг собственного сайта и конкурентов: автоматически снимать скриншоты ценовых страниц, каталогов, акций раз в день. При изменении — уведомление руководителю. Для небольшой команды это реальная замена дорогим SaaS-сервисам мониторинга без абонентской платы — только VPS и cron.
Кейсы в личной жизни
Разработчик. Собрать личную библиотеку JS-хелперов для скрейпинга, положить в публичный GitHub Gist, подключать через --js-file gh:username/gist-id. Один раз написал скрипт извлечения структуры страницы — переиспользуешь в десятках проектов, обновление в одном месте.
Контент-мейкер и исследователь. Архивировать страницы, которые скоро изменятся или исчезнут: новостные статьи, публичные доски, временные акции. Команды html и pdf сохраняют и визуал, и разметку — полноценный снапшот без потерь.
Студент или фрилансер. Ускорить сбор данных для отчётов и дашбордов: accessibility покажет структуру страницы, har — все сетевые запросы, javascript — выполнит произвольный код прямо в контексте страницы и вернёт результат. Playwright-уровень мощности без написания boilerplate-кода с нуля.
Как применить сегодня
- Установить:
pip install shot-scraper, затемshot-scraper installдля загрузки браузера Playwright - Написать JS-скрипт, положить в публичный GitHub Gist и вызвать через
shot-scraper html URL --js-file gh:username/gist-id— переиспользуемый парсер для любого проекта - Настроить
shot-scraper multiс ключомserver:для локального Next.js — теперь не нужно добавлятьsleepи бояться таймаутов в CI - Добавить шаг в GitHub Actions: снимать скриншоты при каждом деплое на staging, хранить как артефакты для визуальной регрессии
- Изучить команды accessibility и har — они дают неожиданно глубокий анализ страниц для отладки и мониторинга производительности