@DiGiTAll

Как спарсить капчу, которая обновляется при каждом запросе?

Обычно капчу обрабатывают просто. Ищут в коде страницы вывод изображения, сохраняют его (или ссылку на него) и отправляют на сервис для распознавания / распознают сами.

Но существует тип каптчи, которая обновляется при каждом запросе. Например:
plasma-lab.com/public/controls/turingImage.ashx

Т.е. если мы получим каким-нибудь curl страницу (и адрес изображения), и сохраним изображение по полученной ссылке - это будут два разных изображения. Каждый новый запрос по адресу каптчи - будет отдавать новую картинку.

Вопрос. А эта задача вообще имеет решение средствами php? Может есть какая-то возможность, получать всё что нам отдаёт вражеский сервер в какой-то stream и "выдирать" картинку из него?

Конечно, есть решение по работе через управление собственным браузером (используя JavaScript, компонент WebBrowser) или ещё что-то в этом духе. Но это решение некрасивое.
  • Вопрос задан
  • 2912 просмотров
Пригласить эксперта
Ответы на вопрос 2
@1Rockman
Обращайтесь из скрипта сразу к plasma-lab.com/public/controls/turingImage.ashx сервер отдаст вам капчу и сохранит ее за вашей сессией, поэтому куки тоже сохраняйте. Отправляете картинку в антикапчу, получаете ответ. И посылаете нужный запрос с сохраненными куками и расшифрованной капчей, будь то авторизация или какое то действией, что вам там необходимо.
Ответ написан
shaks
@shaks
Это стандартная капча и работа с ней - стандартная, как описал Александр Галанин
Пойми логику работы таких капч:
Скрипт сгенерил картинку, он должен гдето сохранить то что такому-то пациенту я выдал такойто текст капчи. Идентификатором "пациента" выступает кука или сессия.
Алгоритм примерно следующий:
- обращаешься на скрипт капчи
- сохраняешь картинку и все куки в том числе и сессию
- распознаешь капчу
- с сохраненными куками сабмитишь нужную форму на сайте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы