anticapcha get_last_capcha_result ERROR_NO_SLOT_AVAILABLE

Все вопросы касающиеся использования
программы можно задать здесь
Ответить
sas
Сообщения: 75
Зарегистрирован: 24 апр 2011, 18:46

anticapcha get_last_capcha_result ERROR_NO_SLOT_AVAILABLE

Сообщение sas » 17 май 2011, 16:56

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 небыл назначен?

satih
Сообщения: 269
Зарегистрирован: 31 мар 2010, 23:44

Re: anticapcha get_last_capcha_result ERROR_NO_SLOT_AVAILABL

Сообщение satih » 17 май 2011, 17:33

если $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);

tito
Сообщения: 15
Зарегистрирован: 07 апр 2011, 18:41

Re: anticapcha get_last_capcha_result ERROR_NO_SLOT_AVAILABL

Сообщение tito » 17 май 2011, 18:36

У меня проход по урлам в цикле 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;
}
}

sas
Сообщения: 75
Зарегистрирован: 24 апр 2011, 18:46

Re: anticapcha get_last_capcha_result ERROR_NO_SLOT_AVAILABL

Сообщение sas » 13 июн 2011, 17:28

сделал так:

$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 в качестве результата если он с ошибкой?
как отключить/включить вывод функции в окно лога?

sas
Сообщения: 75
Зарегистрирован: 24 апр 2011, 18:46

Re: anticapcha get_last_capcha_result ERROR_NO_SLOT_AVAILABL

Сообщение sas » 13 июн 2011, 17:32

satih не возвращает - отсюда и проблема

tito в этом варианте ловится любая ошибка в т.ч. и ERROR_ZERO_BALANCE, а надо бы их разделять

satih
Сообщения: 269
Зарегистрирован: 31 мар 2010, 23:44

Re: anticapcha get_last_capcha_result ERROR_NO_SLOT_AVAILABL

Сообщение satih » 14 июн 2011, 08:50

посмотри код в \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 в качестве результата если он с ошибкой?
за балансом на антикаптче проще следить самому :) благо они посылают меил когда баланс ниже какой-то там суммы. если баланс закончился, скрипт стоит, даже если он тебе дал нужную ошибку, но чем она помогла? так что просто загружать динеро когда антикаптча просит кушать и все будет ок :)
sas писал(а):как отключить/включить вывод функции в окно лога?
$anticapcha->recognize("",'C:\CPCTH\captcha.jpeg',$key,"http://antigate.com",false,5,60,0,0,0,0,0);

Ответить