Итак, теперь вы знаете как устроена капча. Давайте теперь о том, как ее обойти. Для этого нужно сделать несколько запросов с помощью CURL.
Первый запрос должен слаться на файл с капчей. Куда его слать - видно в HTML коде формы или же можно отследить в отладчике, куда отправляются запросы.
Результатом данной операции будет картинка, ее можно сохранить в файл с помощью file_put_contents. Зачем сохранять - чтобы можно было прочитать капчу и разобрать ее каким-либо образом (для начала вручную).
Запрос на капчу обязательно следует слать через curl, а не file_get_contents, так как нам обязательно следует принимать и оправлять куки - ведь капча работает на сессиях PHP.
Итак, получаем капчу, сохраняем его в файл, разбираем эту капчу вручную и шлем второй запрос уже на страницу с формой вместе с POST данными для формы (и с разобранной капчей).
Не ошибитесь и не сделайте лишнего запроса к капче!
Лучше подключить специальный сервис, на котором специально обученные китайцы за копейки разбирают капчи.
Как это работает: вы считываете капчу в файл, а затем используя API сервиса отправляете эту капчу на сервис. Через 3-5 секунд получаете эту капчу обратно в разобранном виде.
Стоит это удовольствие не дорого - менее одного доллара за 1000 разобранных капч.
additional custom parameters for each captcha:
$is_phrase - 0 OR 1 - captcha has 2 or more words
$is_regsense - 0 OR 1 - captcha is case sensetive
$is_numeric - 0 OR 1 - captcha has digits only
$min_len - 0 is no limit, an integer sets minimum text length
$max_len - 0 is no limit, an integer sets maximum text length
$is_russian - 0 OR 1 - with flag = 1 captcha will be given to a Russian-speaking worker
JJJ (12.01.2018 в 21:23)
Вот собственно столкнулся на cURL с такой проблемой(
Как ее можно решить?
Есть один вариант->сервисы на подобе рукапчи)
Но как самому и бесплатно?
была такая задача, в итоге я сделал собственную базу ответов на капчу.
сайты, хозяявами которых, являются всякими хомячками вап мастерских, используется один и тот же алгоритм создания капчи
суть:
смотришь если, сайт хомяка, то создаешь в бд список ответов '23432' => md5()
принимаешь закодированную капку, чекаешь в бд, отдаешь ответ через пост
________ посл. ред. 12.01.2018 в 21:44; всего 1 раз(а); by Avenax
JJJ (12.01.2018 в 21:43) Avenax, поделиться хотя бы алгоритмом?
капча каждый раз, после перезагрузки старницы сбрасывается
в форме, где вставлена капча, вырезаешь закодированную строку
прогоняешь у себя в бд, если есть, то отдаёшь и всё
Avenax (12.01.2018 в 21:45)
JJJ (12.01.2018 в 21:43) Avenax, поделиться хотя бы алгоритмом?
капча каждый раз, после перезагрузки старницы сбрасывается
в форме, где вставлена капча, вырезаешь закодированную строку
прогоняешь у себя в бд, если есть, то отдаёшь и всё
Так это ясно...
Далее как мне вырезать закодированную строку?)