В данном уроке мы с вами научимся обходить капчу. Капча - это такая картинка, данные из которой следует ввести в инпут, чтобы отправить форму.

Капчу устанавливают на форму, если хотят обойти ее автоматическое заполнение парсером. Однако, практически любую капчу можно обойти. Этим мы сейчас и займемся.

Как устроена капча

Чтобы обойти капчу, нужно понимать, как она устроена изнутри.

Когда мы заходим на страницу с формой - там уже есть капча или она подгружается через некоторое время.

Откуда берется эта капча? Она генерируется скриптом PHP при обращению на заданный URL, пусть для примера этот URL такой - capcha.php. Тогда в HTML коде формы для картинки капчи будет такой код: <img src="capcha.php">.

Если мы зайдем на страницу с формой, то картинка капчи автоматически подтянется со страницы capcha.php.

При этом страница capcha.php - это скрипт, который генерирует случайную строку, делает из нее картинку капчи и отдает ее в браузер.

Кроме того страница capcha.php сохраняет строку с капчей в сессию. Это нужно для того, чтобы проверить правильность ввода капчи по отправке формы.

Если обратиться на страницу capcha.php - она каждый раз будет отдавать новую капчу и, соответственно, эта новая капча будет затирать старую в сессии.

Как обойти капчу

Итак, теперь вы знаете как устроена капча. Давайте теперь о том, как ее обойти. Для этого нужно сделать несколько запросов с помощью CURL.

Первый запрос должен слаться на файл с капчей. Куда его слать - видно в HTML коде формы или же можно отследить в отладчике, куда отправляются запросы.

Результатом данной операции будет картинка, ее можно сохранить в файл с помощью file_put_contents. Зачем сохранять - чтобы можно было прочитать капчу и разобрать ее каким-либо образом (для начала вручную).

Запрос на капчу обязательно следует слать через curl, а не file_get_contents, так как нам обязательно следует принимать и оправлять куки - ведь капча работает на сессиях PHP.

Итак, получаем капчу, сохраняем его в файл, разбираем эту капчу вручную и шлем второй запрос уже на страницу с формой вместе с POST данными для формы (и с разобранной капчей).

Не ошибитесь и не сделайте лишнего запроса к капче!

Использование сервисов распознавания

В предыдущем примере мы распознавали вручную, однако, чаще всего это делать нецелесообразно.

Лучше подключить специальный сервис, на котором специально обученные китайцы за копейки разбирают капчи.

Как это работает: вы считываете капчу в файл, а затем используя API сервиса отправляете эту капчу на сервис. Через 3-5 секунд получаете эту капчу обратно в разобранном виде.

Стоит это удовольствие не дорого - менее одного доллара за 1000 разобранных капч.

Сервис anti-captcha

https://anti-captcha.com/ (он же antigate)

Пример кода API для PHP https://anti-captcha.com/code/base64.txt

видео?

Простые капчи

Телефоны как картинки

снять видео надо

Нейронная сеть

https://habrahabr.ru/post/63854/ разбор капчи, не нейронная сеть http://asam.by/archive/my_funn/ нейронная сеть для капчи http://xakep-archive.ru/xa/135/044/1.htm распознавание php, нейронная сеть нейронная сеть php для разбора капчи http://eax.me/captcha-recognition/ - тут хороший цикл статей НЕ PHP снять видео надо http://neuralnet.info/ - еще учебник, простой и хороший http://www.neuroproject.ru/neuro.php - учебник по нейронным сетям