не сталкивался, но идея есть. в принципе сет картинок у них довольно ограниченый. нужно спарсить все/большинство сетов картинок, выбрать из каждого сета вертикальную, и потом сравнивать с тем что показано в каптче.
у обьекта $mouse есть функции которые позволяют перетаскивать мышью ползунок, т.е. убеждаемся что все три картинки каптчи из известных нам сетов (иначе просим новую каптчу), и двигаем ползунок нужное количество раз до вертикальной картинки (угол при сдвижении ползунка меняется одинаково, а весь сет картинок же уже есть, т.е. если начали с перевернутой картинки, знаем точно сколько раз сдвинуть ползунок до вертиакльной). сделать такое думаю за день можно, плюс в том, что затрат на решение каптчи не будет, да и не спамят пока с такой каптчей на автомате, значит сайты с ней не заспамленные.
Код: Выделить всё
<?php
require("../Templates/xweb_human_emulator.php");
// переходим на страницу каптчи
$browser->navigate('http://notcaptcha.webjema.com/?p=1#comments');
$browser->wait();
// ставим фокус на нужную часть экрана
$input->set_focus_by_name('url');
// y координата ползунков (все 3 на одном уровне высоты)
$y = $image->get_y_by_atribute('id','leftBegun_imgone');
// х координата левого ползунка
$x1 = $image->get_x_by_atribute('id','leftBegun_imgone');
// х координата среднего ползунка
$x2 = $image->get_x_by_atribute('id','leftBegun_imgtwo');
// х координата правого ползунка
$x3 = $image->get_x_by_atribute('id','leftBegun_imgthree');
sleep(15);
// двигаем первый ползунок на 5 пунктов
MoveSlider($x1, $y, 5);
sleep(5);
// двигаем средний ползунок на 1 пункт
MoveSlider($x2, $y, 1);
sleep(5);
// двигаем правый ползунок на 3 пункта
MoveSlider($x3, $y, 3);
$app->quit();
/*
передвижение ползунка на нужное количество пунктов
принимает:
$x - х координата ползунка
$y - y координата ползунка
$steps - количество сдвижений ползунка (количество переворотов картинки каптчи)
возвращает - ничего
*/
function MoveSlider($x, $y, $steps) {
global $mouse;
$mouse->left_button_down($x, $y);
// 9 пикселей примерное передвижение ползунка для изменения 1 угла картинки
$mouse->move($x + 9*$steps, $y);
$mouse->left_button_up($x + 9*$steps, $y);
}
?>
нужно только найти чем сравнивать картинки,
на пхп тулзы есть, может еще какие тулзы, тут сложно подсказать, нужно поискать что в сети пишут про сравнение картинок. ко всему они еще на многие картинки накладывают цветное пятно, но так как большинство картинки не заслонено, думаю для инструмента сравнивания картинок найти самую похожую не будет сложно.
---------------------------------------------------------------------------------------------
написал скрипт выше как пример с сдвижением мышью, зашел позже с выключеным джаваскриптом, задача стала еще проще - картинки сразу показывают все, ничего двигать не надо, надо только выбрать номер 1 из 8 картинок которая стоит горизонтально. так что вся задача сводится к распознаванию картинки, кто найдет такой инструмент, профит!
Код: Выделить всё
<?php
require("../Templates/xweb_human_emulator.php");
// выключаем js
$browser->enable_java_script(0,0);
// переходим на страницу каптчи
$browser->navigate('http://notcaptcha.webjema.com/?p=1#comments');
$browser->wait();
// сохраняем 3 картинки
$image->save_to_file_by_url($image->get_src_by_name('imgonePict'), __DIR__.'\cap1.jpeg', true);
$image->save_to_file_by_url($image->get_src_by_name('imgtwoPict'), __DIR__.'\cap2.jpeg', true);
$image->save_to_file_by_url($image->get_src_by_name('imgthreePict'), __DIR__.'\cap3.jpeg', true);
// функция распознавания, которая сможет найти номер вертикальной картинки
$cap1 = RecognizeCapPosition(__DIR__.'\cap1.jpeg');
$cap2 = RecognizeCapPosition(__DIR__.'\cap2.jpeg');
$cap3 = RecognizeCapPosition(__DIR__.'\cap3.jpeg');
// ставим нужный номер картинки для каждой из 3-х каптч
$listbox->select_num_value_by_name('imgoneField', $cap1);
$listbox->select_num_value_by_name('imgtwoField', $cap2);
$listbox->select_num_value_by_name('imgthreeField', $cap3);
$app->quit();
?>