antigate периодически выдает ERROR_NO_SLOT_AVAILABLE
как отловить это и повторять попытки распознать капчу?
тестировать неудается т.к. такой код стабильно поймать для отладки сложно
в примере есть вызов
echo $image->recognize_by_anticaptcha(..)."<br>";
echo $anticapcha->get_last_capcha_filename()."<br>";
echo $anticapcha->get_last_capcha_id()."<br>";
echo $anticapcha->get_last_capcha_result()."<br>";
echo "конец";
при этом коде лог такой
---cut---
server returned error: ERROR_NO_SLOT_AVAILABLE
c:\1.jpg
-1
<перевод строки>
конец
---cut---
из этого я делаю вывод что
$image->recognize_by_anticaptcha(..)."<br>";
выводит server returned error: ERROR_NO_SLOT_AVAILABLE
$anticapcha->get_last_capcha_id()."<br>";
-1
echo $anticapcha->get_last_capcha_result()."<br>";
<перевод строки>
вопрос как мне получить код ошибки антигейта если get_last_capcha_result() выдает пустую строку, а -1 это видимо значит что ID небыл назначен?
anticapcha get_last_capcha_result ERROR_NO_SLOT_AVAILABLE
Re: anticapcha get_last_capcha_result ERROR_NO_SLOT_AVAILABL
если $image->recognize_by_anticaptcha(..) возвращает server returned error: ERROR_NO_SLOT_AVAILABLE, может сделаешь цикл, и если получаешь это как ответ, посылаешь каптчу заного? возможная реализация:
Код: Выделить всё
do {
$cap_txt = $image->recognize_by_anticaptcha(..);
} while (strpos($cap_txt, 'ERROR_NO_SLOT_AVAILABLE') !== false);
Re: anticapcha get_last_capcha_result ERROR_NO_SLOT_AVAILABL
У меня проход по урлам в цикле for.
Я делаю так
for($i=0; $i<count($urls);$i++){
$captcha = $image->recognize_by_anticaptcha("",'C:\CPCTH\captcha.jpeg',$key,"http://antigate.com",true,5,60,0,0,0,0,0);
if(!($captcha)){
$i--; // ERROR_SLOT_NOT_AVAILABLE
continue;
}
}
Я делаю так
for($i=0; $i<count($urls);$i++){
$captcha = $image->recognize_by_anticaptcha("",'C:\CPCTH\captcha.jpeg',$key,"http://antigate.com",true,5,60,0,0,0,0,0);
if(!($captcha)){
$i--; // ERROR_SLOT_NOT_AVAILABLE
continue;
}
}
Re: anticapcha get_last_capcha_result ERROR_NO_SLOT_AVAILABL
сделал так:
$anticap = $image->recognize_by_anticaptcha(
"images/captcha",
"c:\\1.jpg",
"*************************",
"http://antigate.com",
true,0,0,0,0,1,4,4);
echo "anticap = ".$anticap."<br>";
// выведем информацию
echo $anticapcha->get_last_capcha_filename()."<br>";
echo $anticapcha->get_last_capcha_id()."<br>";
echo $anticapcha->get_last_capcha_result()."<br>";
в результате получаю:
===cut===
server returned error: ERROR_ZERO_BALANCE anticap =
c:\1.jpg
-1
===cut===
это значит что "server returned error: ERROR_ZERO_BALANCE" выдает сама функция в окно лога
и она ничего не возврачает в качестве результата
остальной вывод тоже бесполезен
вопросы: как получить ERROR_ZERO_BALANCE в качестве результата если он с ошибкой?
как отключить/включить вывод функции в окно лога?
$anticap = $image->recognize_by_anticaptcha(
"images/captcha",
"c:\\1.jpg",
"*************************",
"http://antigate.com",
true,0,0,0,0,1,4,4);
echo "anticap = ".$anticap."<br>";
// выведем информацию
echo $anticapcha->get_last_capcha_filename()."<br>";
echo $anticapcha->get_last_capcha_id()."<br>";
echo $anticapcha->get_last_capcha_result()."<br>";
в результате получаю:
===cut===
server returned error: ERROR_ZERO_BALANCE anticap =
c:\1.jpg
-1
===cut===
это значит что "server returned error: ERROR_ZERO_BALANCE" выдает сама функция в окно лога
и она ничего не возврачает в качестве результата
остальной вывод тоже бесполезен
вопросы: как получить ERROR_ZERO_BALANCE в качестве результата если он с ошибкой?
как отключить/включить вывод функции в окно лога?
Re: anticapcha get_last_capcha_result ERROR_NO_SLOT_AVAILABL
satih не возвращает - отсюда и проблема
tito в этом варианте ловится любая ошибка в т.ч. и ERROR_ZERO_BALANCE, а надо бы их разделять
tito в этом варианте ловится любая ошибка в т.ч. и ERROR_ZERO_BALANCE, а надо бы их разделять
Re: anticapcha get_last_capcha_result ERROR_NO_SLOT_AVAILABL
посмотри код в \Templates\Objects\DOM\xhe_anticaptcha.php , там просто функция которую дают в антикаптче. можешь заточить ее под себя, чтоб либо в главный скрипт отдавала ответ, либо чтоб сама при разных ответах антикаптчи посылала снова. хотя имхо заморачиватся с ней не обязательно, можно просто в скрипте сделать циклв большинстве случаев он работает.
Код: Выделить всё
while (true) {
$cap_txt = $anticapcha->recognize("",'C:\CPCTH\captcha.jpeg',$key,"http://antigate.com",true,5,60,0,0,0,0,0);
if (empty($cap_txt)) {
continue;
}
break;
}
за балансом на антикаптче проще следить самому благо они посылают меил когда баланс ниже какой-то там суммы. если баланс закончился, скрипт стоит, даже если он тебе дал нужную ошибку, но чем она помогла? так что просто загружать динеро когда антикаптча просит кушать и все будет окsas писал(а):вопросы: как получить ERROR_ZERO_BALANCE в качестве результата если он с ошибкой?
$anticapcha->recognize("",'C:\CPCTH\captcha.jpeg',$key,"http://antigate.com",false,5,60,0,0,0,0,0);sas писал(а):как отключить/включить вывод функции в окно лога?