Підтримувані типи завдань
Методи API
Статті
Уроки
GitHub
Tutorial pages

Як обійти будь-яку капчу за допомогою завдань AntiGate

Доступна нова відео-версія підручника із завдань AntiGate тут..

Після багатьох років досліджень і розробок ми представляємо універсальне рішення, яке допоможе вашим роботам проходити через ворота капчі, створені людьми. Ми називаємо це "AntiGate", і це шаблони сценаріїв, які використовують наші працівники для виконання точних завдань.

У певний момент ваша програма зустрінеться із "шлюзом" захисту від автоматизації з якимось новим типом капчі, заплутаними скриптами браузера або чимось іншим. Ось тут і вступають у гру наші завдання AntiGate. Ви доручаєте одному з наших працівників створити реальний сеанс у браузері.
  • Спочатку виберіть шаблон. Ви можете використовувати існуючий або створити власний. Шаблон — це набір покрокових інструкцій, які виконують працівники.
  • По-друге, надайте будь-які додаткові дані, які вказані у шаблоні, наприклад, значення вхідних даних, які потрібно заповнити, селектор CSS для введення або веб-адресу, до якої ми повинні перейти. Поговоримо більше про шаблони трохи пізніше.
  • По-третє, і необов'язково - проксі. Вони потрібні, якщо веб-сайт пов’язує кожен файл cookie сеансу з точною IP-адресою.
Визначившись із цими трьома пунктами, ви створюєте завдання у нашому API. Працівник переходить на ваш веб-сайт за допомогою спеціального плагіна для браузера і виконує всі кроки скрипту вручну або автоматично. Наприкінці скрипту ми отримуємо всю інформацію про сеанс браузера, а саме: файли cookie, значення localStorage, відбиток браузера, і передаємо її назад у ваш додаток. Вам залишилося лише використати ці дані, щоб відновити сеанс нашого працівника і продовжити взаємодію з сайтом так, ніби це користувач. Адже круто? :)

Що таке шаблони AntiGate?

Шаблон AntiGate визначає точний сценарій, за яким діятимуть наші працівники. Шаблони складаються з кроків, які виконуються послідовно. Після завершення одного кроку працівник переходить до наступного. Коли виконано всі кроки і завдання завершено, робиться знімок сеансу працівника та надсилається назад у вашу програму.

Які існують кроки?
  • Заповнити текстове поле автоматично або вручну.
  • Зачекати, поки контрольний текст з'явиться (або зникне) на сторінці.
  • Зачекати, поки елемент DOM заданий по CSS селектору з'явиться (або зникне) на сторінці.
  • Зачекати, поки ключове слово з'явиться (або зникне) у поточній URL-адресі браузера працівника.
У текстовому полі шаблону "Опис для працівників" ви можете описати будь-які інші кроки, які ви очікуєте від працівника. Наприклад: "Вирішіть капчу та натисніть кнопку надіслати".
Давайте розглянемо приклад. Перейдіть до Центру розробників і створіть тестовий шаблон безкоштовно. Не хвилюйтеся, ви нічого не зламаєте!
Натисніть, щоб додати шаблон
Натисніть, щоб завантажити зразок
Зверніть увагу на кроки
Ви завантажили демонстраційний зразок. Ви можете зберегти його у своєму обліковому записі та перевірити самостійно пізніше. Ознайомимося з повним переліком властивостей шаблону:
  • Назва шаблону. Після збереження його не можна буде змінити. Після публікації ваш шаблон стане доступним в API під цією назвою.
  • Опис для клієнтів. Відкриті шаблони доступні в нашому каталозі шаблонів.
  • Опис для працівників. Це текст, який наші працівники побачать у верхній частині сторінки.
    Зразок інтерфейсу працівника
  • Змінні. Це список імен змінних, які ви можете додати для використання на кроках замість постійних значень. У цьому прикладі ми маємо 2 змінні, "логін" і "пароль". Ці 2 використовуються на кроках 1 і 2 для заповнення демонстраційної форми входу. Таким чином, ви можете надсилати ці значення через API замість жорсткого кодування постійного логіна та пароля в шаблоні.
    Змінні, які використовуються на кроках 1 і 2
  • Кроки робітника. Тут ви можете редагувати та змінювати порядок кроків сценарію. У нашому прикладі ми робимо наступне:
    1. Автоматично заповнити текстове поле за допомогою селектора CSS "#login". Значення для текстового поля визначається змінною "логін".
    2. Автоматично заповнити текстове поле за допомогою селектора CSS "#password". Значення для текстового поля визначається змінною "пароль".
    3. Зачекати, поки на сторінці з’явиться контрольний текст. Для нього встановлено постійне значення "Тест пройдено з авторизацією".

Тепер ви можете зберегти шаблон, і він з’явиться у вашому Центрі розробників. Зверніть увагу, що він має статус "Пісочниця", що означає, що він доступний лише вам і недоступний в API. Звідси ви можете спробувати протестувати свій щойно створений шаблон, ніби ви власний працівник.

Тестування шаблонів

На цьому етапі вам потрібно буде використовувати браузер Chrome, і ми рекомендуємо вам створити новий профіль користувача в цьому браузері, оскільки нам потрібно буде встановити наш плагін, який має доступ до файлів cookie профілю.
Зразок інтерфейсу працівника
Далі на картці шаблону натисніть кнопку "тест".
Виконуйте інструкції та завантажте плагін для своєї платформи. Потім перезавантажте сторінку, щоб зміни набули чинності, заповніть змінні "логін" та "пароль" випадковими значеннями та натисніть кнопку "Запустити тест". Повинна відкритися нова сторінка, яка виглядатиме так:

Поруч із адресним рядком є синя панель, яку плагін додає у верхній частині цільової сторінки. Ось так працівники дізнаються про свої доручення і контролюють виконання завдання.

Також зверніть увагу, що поля логіну та пароля приховані під час заповнення їх змінними. Це зроблено навмисно. Хоча працівники мають повний доступ до даних завдань через консоль розробника, 99,99% з них не турбуються тим, що відбувається за лаштунками.
Вирішивши Recaptcha, натисніть кнопку "Увійти". Останній крок шаблону, "WAIT_CONTROL_TEXT_PRESENT", буде пройдено. Плагін шукає контрольну фразу "Тест пройдено з авторизацією", яка постійно визначена у вашому шаблоні. Вкладка автоматично закривається, а знімок сеансу відображається в полі результатів.
Приклад результатів

Такі самі знімки можна отримати з API. Але щоб зробити ваш шаблон доступним в API, спочатку нам потрібно його опублікувати.

Публікація шаблонів

У вас є 2 варіанти публікації шаблону: зробити його приватним або відкритим.
  • Приватні шаблони доступні лише з вашим ключем API. Інші клієнти не зможуть ними користуватися. Вартість рецензування та публікації: $1.
  • Відкриті шаблони доступні кожному. За допомогою цього шаблону ви будете заробляти 5% на витратах кожного клієнта. Вам потрібно буде залишити деякі контакти, щоб наші клієнти могли звернутися за вашою допомогою, якщо щось піде не так з вашим шаблоном. Вартість рецензування та публікації: $1.
Ми уважно переглядаємо всі шаблони. Щоб успішно перейти до режиму виробництва, потрібно дотримуватися деяких основних вимог:
  • Жодної протиправної діяльності будь-якого роду.
  • Шаблони не повинні дублювати існуючі.
  • Не надсилайте фіктивні або тестові шаблони.
  • Надайте приклад веб-адреси та значення змінних для перегляду. Ми запустимо тест, і всі кроки повинні бути виконані успішно.

Запити API

Запит на створення завдання до API для вказаного вище шаблону AntiGate виглядав би так само просто, як цей:

curl -i -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -X POST -d '{
    "clientKey":"YOUR_API_KEY",
    "task":
        {
            "type":"AntiGateTask",
            "websiteURL":"https://anti-captcha.com/demo/?page=recaptcha_v2_textarea",
            "templateName":"Demo sign-in at anti-captcha.com #123456",
            "variables": {
                "login":"some value",
                "password":"some value"
            }
        }
}' https://api.anti-captcha.com/createTask

Тобто ви передаєте параметри "templateName" та "variables" для заповнення шаблону.

Використання результатів завдання

Успішно виконане завдання AntiGate поверне рішення, яке міститиме "cookies", "localStorage", "fingerprint" та "url".Вашому додатку потрібно перейти до "url" за допомогою "cookies" у цьому запиті та принаймні використати значення "fingerprint.self.navigator.userAgent" в якості агента користувача браузера. Більш складні веб-сайти зберігають важливі дані в localStorage, який є свого роду сучасною версією файлів cookie. У цьому випадку вам потрібно буде ввести ці дані на сторінці перед фактичним запуском будь-яких Javascript. Це можна зробити у середовищі розробки, наприклад Puppeteer. Ця тема, мабуть, заслуговує ще однієї статті.

Створення власних шаблонів

Просто виконайте наведені вище дії, не завантажуючи зразок шаблону. Гарно заповніть усі деталі та уважно додайте кроки. Зверніть увагу, що всі кроки виконуються послідовно. Плагін не дозволить виконати наступний крок, доки поточний не буде завершено. Ви можете будь-коли зберегти свій шаблон і протестувати його за допомогою плагіна браузера працівника.

Вартість

Наразі ми встановили ціну в $2 за 1000 завдань. Крім того, кожна секунда виконання завдання коштує 1/60 вартості завдання. Наприклад, завдання коштує $0.002, а працівник витратив на його вирішення 20 секунд.
Кінцева вартість становитиме $0,00266 = 0,002 + (0,002 / 60 * 20).