Menu

Як обійти будь-яку капчу за допомогою завдань 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 USD.
  • Відкриті шаблони доступні кожному. За допомогою цього шаблону ви будете заробляти 5% на витратах кожного клієнта. Вам потрібно буде залишити деякі контакти, щоб наші клієнти могли звернутися за вашою допомогою, якщо щось піде не так з вашим шаблоном. Вартість рецензування та публікації: 1 USD.
Ми уважно переглядаємо всі шаблони. Щоб успішно перейти до режиму виробництва, потрібно дотримуватися деяких основних вимог:
  • Жодної протиправної діяльності будь-якого роду.
  • Шаблони не повинні дублювати існуючі.
  • Не надсилайте фіктивні або тестові шаблони.
  • Надайте приклад веб-адреси та значення змінних для перегляду. Ми запустимо тест, і всі кроки повинні бути виконані успішно.

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