JUST · AI инженерные заметки Внедрение под ключ
Главная / Статьи / Инструмент
Инструментtildaheadlessplaywrightapiавтоматизация 2 минуты2026-10-01

Сборка и публикация лендинга в Тильде headless-командами

Через внутренний API редактора собрал и опубликовал лендинг в Тильде без единого клика: addnewrecord, saverecord, pagepublish. Транспорт — только playwright.

3блока на странице
160, 30, 127tplid блоков
200HTTP-код страницы

12.09.2026 я собрал и опубликовал лендинг в Тильде полностью headless-командами, без единого клика по интерфейсу. Страница https://rightfully-verbal-pochard.tilda.ws/ (projectid 38431909, pageid 238932009) отдаёт HTTP 200, на ней три блока — tplid 160 (обложка), 30 (заголовок и текст), 127 (текст) — и наш текст. Блоки добавлялись вызовом addnewrecord, текст писался saverecord, публикация — pagepublish.

Транспорт

Работает только playwright context.request.post внутри browser context, то есть с браузерным TLS. curl и urllib Тильда режет: 302 на /login/ плюс set-cookie hash=deleted.

транспорт
context.request.post(...)

Вход и капча

На входе — капча Yandex SmartCaptcha в iframe smartcaptcha.yandexcloud.net/checkbox.ru.*.html. Клик по div.CheckboxCaptcha-Checkbox надо делать мышью по координатам: getBoundingClientRect чекбокса плюс позиция iframe, mouse.move steps=15, затем mouse.click. Обычный element.click() не засчитывается. После капчи кнопку «Войти» надо нажать второй раз.

Аргументы браузера: --no-sandbox --disable-blink-features=AutomationControlled плюс init-скрипт со скрытием navigator.webdriver.

Сборка страницы

добавление блока
comm=addnewrecord {pageid, afterid, tplid}

Публикация

Публикация — один вызов: /page/publish/ comm=pagepublish {pageid, csrf:'', returnjson:yes}, в ответ приходит {link}. Скрипт сборки лежит в tilda_build.py.

публикация
comm=pagepublish {pageid, csrf:'', returnjson:yes}
Грабля. На бесплатном тарифе Тильда сама добавляет рекламный футер «This site was made on Tilda» — убрать без платного тарифа нельзя.

Что не проверено

Не проверено, работает ли транспорт в headless=True: я гонял в headful на Xvfb :99.

Читайте дальше