<
  • Главная
Статьи

Розпізнавання капчи за допомогою Human Emulator - Спільнота розробників скриптів Human Emulator

Цитата Wikipedia - CAPTCHA (від англ. Completely Automated Public Turing test to tell Computers and Humans Apart - повністю автоматизований публічний тест Тьюринга для розрізнення комп'ютерів і людей) - товарний знак Університету Карнегі - Меллона, в якому розробили комп'ютерний тест, який використовується для того, щоб визначити, ким є користувач системи: людиною або комп'ютером.

Даний тест широко застосовується при реєстрації, при додаванні повідомлень, коментарів, оголошень і т.д.

Приклади капч для розпізнавання:

Приклади капч для розпізнавання

У Human Emulator є три функції для розпізнавання капчі:

recognize_captcha - розпізнати картинку з диска як капчу
recognize_by_anticaptcha - розпізнати капчу картинки через сервіс антікапчі
recognize_by_captchabot - розпізнати капчу картинки через сервіс капчабот

recognize_captcha функція самостійно розгадує 10 видів простих капч. Що за капчи і який відсоток їх правильного розгадування
можна подивитися в документації до програми

recognize_by_anticaptcha і recognize_by_captchabot використовують сервіси розпізнання antigate.com і captchabot.com. Для розширення роботи з цими сервісами були додані об'єкти anticapcha ()
і captchabot ().

Так само для ручного розпізнання в Хуманн є функції, які показують капчу в окремому діалозі і
дають вам можливість ввести капчу самому:
dlg_captcha_from_image_number - діалог введення капчі з картинки c заданим номером
dlg_captcha_from_url - показати діалог введення капчі з картинки по заданому УРЛу
dlg_captcha_from_url_exactly - показати діалог введення капчі з картинки по заданому УРЛу з соотвествующих урла
(Див.)

Наведемо кілька прикладів скриптів для використання різних капч.

Для початку використовуємо функцію для розпізнання капч засобами 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); і змінну-прапор для налаштування роботи через розпізнання або через діалог введення. У підсумку наш скрипт буде:

$ Xhe_host = "127.0.0.1:7011"; // The following code is required to properly run XWeb Human Emulator require ( "../../ Templates / xweb_human_emulator.php"); // показувати через діалог $ b_show_dlg = true; // перехід на додавання оголошення $ browser-> navigate ( "http://www.xanga.com/register.aspx"); // рядок з символами $ str_captcha = ""; // розпізнати капчу if ($ b_show_dlg) // використовуючи діалог $ str_captcha = $ app-> dlg_captcha_from_url_exactly ( "randletters.aspx? Fy", false); else {// зберегти картинку в файл за частиною src $ image-> screenshot_by_src ( "C: \\ Temp \\ tmp.jpeg", "randletters.aspx? fy", false); // розпізнати картинку $ str_captcha = $ image-> recognize_captcha ( "C: \\ tmp.jpeg", 9); } // задати значення в поле введення капчі $ input-> set_value_by_name ( 'registrationModule $ txtLetters', $ str_captcha); // Quit $ app-> quit ();

Тепер напишемо скрипт, який використовує сервіси розпізнавання antigate.com і captchabot.com. Для прикладу візьмемо сайт з flash капчі http://snappages.com/register. В даній формі реєстрації для відображення капчи використовується flash об'єкт, який програє символи в flash програвачі. Для того що б розпізнати таку каптчу, ми використовуємо одну з функцій screenshot_by_ *, яка зберігає картинку елемента на диск і потім вже будемо відправляти збережену картинку на сервіс розпізнавання.

Примітка: На жаль, опису функцій screenshot_by_ * поки немає в документації до Human Emulator. Дані функції працюють для всіх об'єктів і зберігають їх знімок на диск по заданому шляху. Тобто ви можете зробити фотографію будь-якого елементу сторінки, використовуючи той чи інший атрибут елемента. Для виклику цих функцій можна використовувати контекстне меню елемента-> пункт меню «Зберегти» і вибрати потрібну функції із списку.

Для http://snappages.com/register збереження флеш об'єкта буде виглядати наступним чином:

$ Object-> screenshot_by_name ( "C: \\ Temp \\ tmp.jpeg", "captchaSwf");

, А виклик фунций для сервісів розпізнання:

// розпізнати капчу за допомогою antigate.com $ str_captcha = $ image-> recognize_by_anticaptcha ( "", "C: \\ Temp \\ tmp.jpeg", $ api_key, $ path = 'http: //antigate.com', $ is_verbose = true, $ rtimeout = 5, $ mtimeout = 120, $ is_phrase = 0, $ is_regsense = 1, $ is_numeric = 0, $ min_len = 0, $ max_len = 0); // розпізнати капчу за допомогою captchabot.com $ str_captcha = $ image-> recognize_by_captchabot ($ api_key, "C: \\ Temp \\ tmp.jpeg", "");

, Де $ api_key - це ключ сервісу розпізнання

Обернём всі виклики для розпізнання капчи в оператор switch і додамо прапор для вибору механізму розпізнавання. Тепер наш скрипт буде виглядати наступним чином:

$ Xhe_host = "127.0.0.1:7011"; // The following code is required to properly run XWeb Human Emulator require ( "../../ Templates / xweb_human_emulator.php"); // що використовувати для розпізнання // 0 - діалог введення каптчі // 1 - antigate.com // 2 - captchabot.com $ b_use = 2; // ключ антікаптчі $ api_key_antg = "ваш ключ"; // ключ каптчабот $ api_key_cpt = "ваш ключ"; // шлях куди зберегти картинку $ img_path = "C: \\ Temp \\ tmp.jpeg"; // перехід на додавання оголошення $ browser-> navigate ( "http://snappages.com/register"); // рядок з символами $ str_captcha = ""; // збережемо елемент на диск $ object-> screenshot_by_name ($ img_path, "captchaSwf"); // розпізнати капчу switch ($ b_use) // використовуючи діалог {case 0: {// показати діалог введення каптчі $ str_captcha = $ app-> dlg_captcha_from_url ($ img_path); break; } Case 1: {// розпізнати капчу за допомогою antigate.com $ str_captcha = $ image-> recognize_by_anticaptcha ( '', $ img_path, $ api_key_antg, $ path = 'http: //antigate.com',$is_verbose = true, $ rtimeout = 5, $ mtimeout = 120, $ is_phrase = 0, $ is_regsense = 1, $ is_numeric = 0, $ min_len = 0, $ max_len = 0); break; } Case 2: {// розпізнати за допомогою captchabot $ str_captcha = $ image-> recognize_by_captchabot ($ api_key_cpt, $ img_path); break; } Default: // показати діалог введення каптчі $ str_captcha = $ app-> dlg_captcha_from_url ($ img_path); } // задати значення капчі $ input-> set_value_by_name ( "captcha", $ str_captcha); // Quit $ app-> quit ();

Скрипти написані в XHE 4.4.19 MT.

скачати приклади скриптів

Aspx?
Aspx?
Aspx?
Aspx?


Новости
  • Виртуальный хостинг

    Виртуальный хостинг. Возможности сервера распределяются в равной мере между всеми... 
    Читать полностью

  • Редизайн сайта

    Редизайн сайта – это полное либо частичное обновление дизайна существующего сайта.... 
    Читать полностью

  • Консалтинг, услуги контент-менеджера

    Сопровождение любых интернет ресурсов;- Знание HTML и CSS- Поиск и обновление контента;-... 
    Читать полностью

  • Трафик из соцсетей

    Сравнительно дешевый способ по сравнению с поисковым и контекстным видами раскрутки... 
    Читать полностью

  • Поисковая оптимизация

    Поисковая оптимизация (англ. search engine optimization, SEO) — поднятие позиций сайта в результатах... 
    Читать полностью