Цитата Wikipedia - CAPTCHA (від англ. Completely Automated Public Turing test to tell Computers and Humans Apart - повністю автоматизований публічний тест Тьюринга для розрізнення комп'ютерів і людей) - товарний знак Університету Карнегі - Меллона, в якому розробили комп'ютерний тест, який використовується для того, щоб визначити, ким є користувач системи: людиною або комп'ютером.
У Human Emulator є три функції для розпізнавання капчі:
recognize_captcha - розпізнати картинку з диска як капчу
recognize_by_anticaptcha - розпізнати капчу картинки через сервіс антікапчі
recognize_by_captchabot - розпізнати капчу картинки через сервіс капчабот
Наведемо кілька прикладів скриптів для використання різних капч.
Для початку використовуємо функцію для розпізнання капч засобами Human Emulator. Для прикладу візьмемо форму реєстрації на сайті xanga.com. Цей сайт використовує капчу 9 типу, яку Хуман розгадує з 45% -м правильним розгадуванням.
Функція $ image-> recognize_captcha ($ file_path, $ type); на вхід приймає шлях до файлу з картинкою і тип картинки. Тому перед тим як викликати цю функцію нам потрібно зберегти картинку в файл на диск. Для цього використовуємо функцію $ image-> screenshot_by_src.
Примітка: Найкраще працювати з картинками по їх src або по частині їх src. Для того, що б подивитися src картинки можна відкрити інформацію про неї в Інспектора Елементів, клацнувши на ній правою кнопкою миші і в контекстному меню вибрати пункт "Подивитися в інспектора елементів" або в цьому ж меню можна вибрати Клацнути і далі $ image-> click_by_src і в скрипт вставитися функція кліка з повним src, з якого можна буде взяти потрібний шматок, який буде однаковий при кожному оновленні сторінки.
В даному випадку функція буде виглядати наступним чином: $ image-> screenshot_by_src ( "C: \\ Temp \\ tmp.jpeg", "randletters.aspx? Fy", false); Тоді функція $ image-> recognize_captcha ( "C: \\ Temp \\ tmp.jpeg", 9);
Тепер додамо в цей же скрипт виклик діалогу введення капчі $ str_captcha = $ app-> dlg_captcha_from_url_exactly ( "randletters.aspx? Fy", false); і змінну-прапор для налаштування роботи через розпізнання або через діалог введення. У підсумку наш скрипт буде:
Примітка: На жаль, опису функцій screenshot_by_ * поки немає в документації до Human Emulator. Дані функції працюють для всіх об'єктів і зберігають їх знімок на диск по заданому шляху. Тобто ви можете зробити фотографію будь-якого елементу сторінки, використовуючи той чи інший атрибут елемента. Для виклику цих функцій можна використовувати контекстне меню елемента-> пункт меню "Зберегти" і вибрати потрібну функції із списку.
а виклик фунций для сервісів розпізнання:
де $ api_key - це ключ сервісу розпізнання
Обернём всі виклики для розпізнання капчи в оператор switch і додамо прапор для вибору механізму розпізнавання. Тепер наш скрипт буде виглядати наступним чином: