Сравнение
Профиль без человека за клавиатурой
Две дороги нацелить программу на браузер
Первая идёт снаружи: вы подключаете к браузеру библиотеку по протоколу отладки и шлёте команды, как в известных наборах автоматизации.
Вторая идёт изнутри: вы складываете сценарий из шагов, и программа проходит их в профиле, который открыла сама.
Восемь способов под программой
Строки читайте как способы, а не как названия продуктов. Последняя строка наша, и любую клетку в ней вы можете проверить сами.
Где способу по столбцу сказать нечего, там так и написано. Прочерк лучше выдуманного ответа.
| Способ | Чем ведут | Много аккаунтов разом | Признак автоматизации | Без человека за клавиатурой |
|---|---|---|---|---|
| Обычный браузер как есть | Чужой библиотекой по протоколу отладки | Одна личность на все окна | Открытый канал объявляет автоматизацию | Ваш собственный планировщик |
| Режим инкогнито | Не про это | Одна личность на все окна | Принадлежит браузеру, а не режиму | Не про это |
| Отдельные профили самого браузера | Чужой библиотекой по каталогу данных | Разные банки куки, одно устройство | Открытый канал объявляет автоматизацию | Ваш собственный планировщик |
| Расширение с подменой значений | Не про это | Одна личность на все вкладки | Своего признака браузера не снимет | Не про это |
| VPN | Не про это | Один выход на всё | Не про это | Не про это |
| Виртуальная машина на аккаунт | Библиотекой внутри каждого гостя | Сколько гостей поднимет хозяин | Как оставит библиотека внутри гостя | Планировщик гостевой системы |
| Отдельное железо на аккаунт | Библиотекой на каждой машине или человеком | Один аккаунт на устройство | Как оставит библиотека на этой машине | На каждой машине отдельно |
| Браузер с правкой самого движка | Шагами в программе или своим кодом через порт на петле | Очередь по пределу открытых окон | Канал открыт, а признак выключен обратно | Расписание, пока программа открыта |
Ваша библиотека не выдаёт профиль
Открытый канал отладки заставляет Chromium объявить, что браузером управляют. Это первая строка любой проверки на робота, и одно это объявление перевешивает всё, что отпечаток сделал верно.
Поэтому на ARMANOS Browser канал остаётся, а объявление нет: библиотека подключается как обычно, а страница читает navigator.webdriver ложным.
Своя точка входа на профиль на ARMANOS Browser
К профилю вы подключаетесь по отдельному адресу, и работает он только на этой машине и только пока профиль открыт. На встроенном движке порт один на всю программу и открыт лишь при включённом локальном API («Для программистов > Включить локальный API»).
Шумный домен не включается
Страница не увидит крючков от той части протокола, которая их ставит: сценарию она не нужна, и мы её не включаем.
Чем ведут профиль у нас
Шаг вы добавляете формой: выбрать вид, заполнить поля, сохранить. Записи мышью нет: пройти путь руками и получить из него готовые шаги не выйдет.
Страницы и ожидание
Открыть адрес, подождать время или элемент, прокрутить, нажать клавишу.
Заполнение и чтение
Ввести в поле, прочитать значение в переменную, снять экран.
Порядок и ветвление
Повторить тело, обойти список, взять одну ветку условия, работать во вкладках.
Куки и свой код
Прочитать или стереть куки, выполнить свой JavaScript с пределом времени, дождаться запроса шагом «Ждать запрос».
Что всё ещё выдаёт машину
Сценарий повторяет написанное с заданными вами паузами, а один ритм на всех аккаунтах и сам по себе примета. Поэтому у прогрева пауза и длина прокрутки каждый раз свои, из промежутка, а не одно число на всех.
На вопрос, заданный человеку, он не ответит. Разгадывания капчи здесь нет, и модели, решающей, куда нажать, тоже.
Селектор это догадка о странице
Сайт поменял вёрстку, и шаг, целившийся в этот элемент, у вас сломается.
Упавший шаг не кончает прогон
Остальные профили идут дальше, а остановится ли этот профиль на шаге или возьмётся за следующий, говорит правило сценария. Ошибку вы увидите в журнале шагов на экране «Сценарии», а весь прогон будет отмечен неудачным.
Свежий профиль сам по себе примета
Куки-робот сперва обходит обычные общедоступные сайты, и к первому входу банка куки у вас не пуста.
Когда за клавиатурой никого
Расписание вы задаёте сценарию: какие профили, во сколько и сколько идёт разом. Время местное, поэтому после перевода часов девять утра остаются девятью.
Три дня пропущенного прогрева разом это тот самый всплеск, который площадки читают как робота.
Чего это сравнение не утверждает
- Записи сценария нет: пройти путь мышкой и получить из него готовые шаги не выйдет.
- Ни разгадывания капчи, ни распознавания картинок, ни модели в середине. На вопросе для человека сценарий встаёт.
- Расписания идут, только пока открыта программа. Служб в системе мы не ставим, и закрытый ноутбук свои запуски пропускает.
- Выключенная шумная часть протокола убирает одну примету, и только одну. Обещания, что вас не узнают, здесь нет.
- Строки про остальные способы описывают способ вообще. Про названные чужие продукты мы не пишем ничего, потому что честно измерить чужое нам нечем.
Как это проверить
У каждого утверждения ниже назван файл, а у признака автоматизации ещё и стенд, который поднимает настоящий движок.
- Признак автоматизации снимается с настоящей страницы, на настоящем движке, с настоящими ключами запуска
- apps/desktop/src/lib/forkEngine.js · apps/desktop/test/webdriver-flag.js
- Домен протокола, заметный странице, для прогона не включается
- apps/desktop/src/lib/cdp.js · apps/desktop/src/lib/forkPage.js
- Незащищённый общий порт отладки открывается только для встроенного движка
- apps/desktop/src/main/main.js · apps/desktop/test/cdp-port-only-when-needed.js
- Пропущенное расписание опускается, а не догоняется
- apps/desktop/src/lib/schedules.js · apps/desktop/test/schedule-runs.js
- Паузы Куки-робота берутся из промежутка
- apps/desktop/src/lib/cookieRobot.js · apps/desktop/test/cookie-robot.js
Вопросы
- Можно ли записать сценарий, пройдя его мышкой?
- Нет. Шаги вы собираете формой, а ваши нажатия никуда не записываются.
- Заметит ли сайт, что профилем управляет моя библиотека?
- На ARMANOS Browser нет: navigator.webdriver у вас остаётся ложным, а подключаетесь вы к одному профилю, а не ко всей программе.
- Может ли страница вести мои профили через местный порт?
- Нет. Запрос, пришедший со страницы в браузере, получает отказ, и подменённое имя машины его не спасёт.
Читать дальше
Сценарии без кода
Шаги, переменные, циклы и очередь прогона.
Локальный API и токен доступа
Порт, куда стучатся ваши программы, и кому он отказывает.
navigator.webdriver
Одно значение, которое проверка на робота читает первым.
Машины в автоматизации
То же уроком, с названными ошибками.
Доступ команды рядом
Другая ось: как работу передают и как забирают обратно.
Попробуйте сценарий на бесплатном профиле
Бесплатный тариф идёт на том же движке, что и платные, поэтому сценарий ведёт себя там так же, как будет вести потом.