close menu
Підтримувані типи завдань
Методи API
Статті
GitHub icon
GitHub
Menu

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

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

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

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

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

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

Які існують кроки?
  • Заповнити текстове поле автоматично або вручну.
  • Зачекати, поки контрольний текст з'явиться (або зникне) на сторінці.
  • Зачекати, поки елемент DOM заданий по CSS селектору з'явиться (або зникне) на сторінці.
  • Зачекати, поки ключове слово з'явиться (або зникне) у поточній URL-адресі браузера працівника.
У текстовому полі шаблону "Опис для працівників" ви можете описати будь-які інші кроки, які ви очікуєте від працівника. Наприклад: "Вирішіть капчу та натисніть кнопку надіслати".
Давайте розглянемо приклад. Перейдіть до Центру розробників і створіть тестовий шаблон безкоштовно. Не хвилюйтеся, ви нічого не зламаєте!
Натисніть, щоб додати шаблон
Натисніть, щоб завантажити зразок
Зверніть увагу на кроки
Ви завантажили демонстраційний зразок. Ви можете зберегти його у своєму обліковому записі та перевірити самостійно пізніше. Ознайомимося з повним переліком властивостей шаблону:
  • Назва шаблону. Після збереження його не можна буде змінити. Після публікації ваш шаблон стає доступним в API під цією назвою.
  • Опис для клієнтів. Відкриті шаблони доступні в нашому каталозі шаблонів.
  • Опис для працівників. Це текст, який бачать наші працівники у верхній частині сторінки.
    Зразок інтерфейсу працівника
  • Змінні. Це список імен змінних, які ви можете додати, щоб використовувати в кроках замість постійних значень. У цьому прикладі ми маємо 2 змінні, "login" і "password". Вони використовуються на кроках 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" для User-Agent браузера. Більш складні веб-сайти зберігають важливі дані в localStorage, що є своєрідною сучасною версією cookies. У цьому випадку вам потрібно буде вставити ці дані на сторінку перед тим, як запускати будь-який Javascript. Це можна зробити в середовищі розробки, наприклад, Puppeteer. Ця тема, ймовірно, заслуговує на окрему статтю.

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

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

Вартість

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