← Все статьи

Как автоматизировать сайт, у которого нет API

2 мин чтения
Типичная ситуация: есть сервис, в котором вы каждый день делаете одно и то же руками, и очень хочется это автоматизировать. Идёте искать API - а его нет, или он закрыт, или в нём нет нужного метода. Разберём, что делать дальше. Почему API часто нет Открытый API - это обязательство: его нужно поддерживать, документировать, версионировать, защищать от злоупотреблений. Многим продуктам это невыгодно, а некоторым прямо противоречит модели: сервис зарабатывает на том, что вы проводите время в его интерфейсе. Подход 1: парсинг HTML Программа скачивает страницу и вытаскивает нужные данные из разметки. Работает для публичных страниц и для чтения. Слабые места: современные сайты рендерят контент скриптами, так что в сыром HTML может ничего не быть, а любое изменение вёрстки ломает парсер. Подход 2: реверс сетевых запросов Открываете панель разработчика, смотрите, какие запросы шлёт сам сайт, и повторяете их. Работает быстро и без браузера. Слабые места: запросы часто защищены токенами и подписями, а на изменение внутреннего протокола вы не влияете - сломается без предупреждения. Подход 3: браузерная автоматизация Настоящий браузер, которым управляет программа: открывает страницы, кликает, заполняет формы - как человек. Самый универсальный подход: работает с любым сайтом, включая те, где всё рендерится скриптами и требуется авторизация. Плата за универсальность - выше расход ресурсов и необходимость поддерживать привязки к элементам страницы. Как сделать автоматизацию устойчивой Главный враг - изменения интерфейса. Практика, которая спасает: выносить привязки к элементам страницы в конфигурацию, а не зашивать в код. Тогда после обновления сайта вы правите конфиг, а не пересобираете и не переустанавливаете весь инструмент. Второе - человеческий темп действий: случайные паузы вместо механических интервалов. Третье - обработка неожиданного: всплывающие окна, редиректы, капчи должны не ронять процесс, а корректно останавливать его. О правовой стороне Автоматизация своих собственных действий в сервисе, которым вы пользуетесь легально - это одно. Массовый сбор чужих персональных данных, обход платных ограничений и создание нагрузки на чужие серверы - совсем другое, и этим заниматься не стоит. Проверяйте пользовательское соглашение сервиса. Общалкин - это как раз четвёртый подход под ключ: мы автоматизируем рутину в сервисах без API. Нестандартная задача - напишите в Telegram @zloegucci, разберём.
Нужна автоматизация?

Общалкин автоматизирует задачи в сервисах, у которых нет API.

Написать в Telegram