Что нового

Как поймать ошибку распознавания капчи

Yura-H2O

Новичок
Сообщения
35
Репутация
0
Написал скрипт для регистрации на сайте, на котором есть капча. Капчу я посылаю на антигейт, но иногда мне в ответ приходит неверно введены символы капчи и тогда при нажатии на кнопку зарегистрироватся снова перегружается страница уже с новой капчей. Так вот как бы мне сделать так, если капча введена неверно, чтобы функция заполнения регистрационных форм перезапускалась?
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Yura-H2O [?]
тот кусок который отвечает за распознавание капчи помести в бесконечный цикл, который завершается, если ответ полученный от сервера что-то типа "капча распознана"
 
Автор
Y

Yura-H2O

Новичок
Сообщения
35
Репутация
0
Смотрите, после нажатия на зарегистрироваться, если капча введена неверно на странице появляется текст "Неверный код" потому я сделал так
Код:
$oIE3 = _IEAttach("Регистрация")
$cap_errors = _IEBodyReadText($oIE3)

If StringInStr($cap_errors, 'Неверный код') Then
     MsgBox(0,"","капча не правильна")
EndIf


Вот конкретный пример
Код:
$oIE3 = _IEAttach("Регистрация")
$cap_errors = _IEBodyReadText($oIE3)

If StringInStr($cap_errors, 'Неверный код') Then
	$oImg = _IEImgGetCollection($oIE3, 1); в конкретном случае капча была первым img
	_IECopyObjById($oIE3, $oImg)
	_ScreenCapture($File_captch) ;делаем скрин
	$result = AntiCaptcha($sFile) ;посылаем капчу на антигейт
	$capcode = _IEGetObjByName ($oIE3, "sgenfield")
	_IEAction($capcode, "focus")
	_IEFormElementSetValue($capcode, $result)
	$Submit = _IEGetObjByName ($oIE3, "submitreg")
	_IEAction($Submit, "focus")
	_IEAction($Submit, "click")
EndIf


А как вставить конкретный пример в цикл, чтобы проверка выполнялась до тех пор пока капча не будет введена верно, что-то голова не варит?
 

BIOS

Жизнь - игра. График - супер, но сюжет - хреновый.
Сообщения
173
Репутация
69
Код:
Do


    $oImg = _IEImgGetCollection($oIE3, 1); в конкретном случае капча была первым img
    _IECopyObjById($oIE3, $oImg)
    _ScreenCapture($File_captch) ;делаем скрин
    $result = AntiCaptcha($sFile) ;посылаем капчу на антигейт
    $capcode = _IEGetObjByName ($oIE3, "sgenfield")
    _IEAction($capcode, "focus")
    _IEFormElementSetValue($capcode, $result)
    $Submit = _IEGetObjByName ($oIE3, "submitreg")
    _IEAction($Submit, "focus")
    _IEAction($Submit, "click")

    _IELoadWait($oIE3)

    $cap_errors = _IEBodyReadText($oIE3)

Until Not StringInStr($cap_errors, 'Неверный код')
 
Верх