По роду деятельности не часто, но сталкиваюсь с капчами. Из-за больших объемов работы многие процессы автоматизированы, среди которых и распознавание капчи — эта стадия осуществляется с помощью сервиса Antigate, который достаточно стабильно работает, и отличается низкой ценой.
Однако на днях попалась интересная новость (ну как новость — с опозданием на пару месяцев) о том, что сервис Google Docs распознает текст, который загоняется на сервис с виде картинок или pdf-документов. Сразу же возникла мысль использования ресурсов Google автоматизированного для распознавания капчи.
Алгоритм работы, осуществляемый в режиме он-лайн в браузере представляется следующим:
1. В процессе работы наталкиваемся на капчу
2. Получаем капчу в виде графического файла с расширением, которое поддерживается сервисом Google Docs. В настоящее время это форматы .jpg, .png, .gif размером не более 2-х мегабайт. Учитывая, что речь идет о капче — лимит размера загружаемой картинки нас не особо волнует.
3. Открываем новую вкладку
3. В ней загружаем картинку на сервис
4. Открываем картинку в виде текстового файла внутри сервиса
5. Получаем данные в виде готового текста
6. Закрываем вкладку с распознанной капчей
7. Используем результат распознавания в работе
Понятно, что данный алгоритм можно зациклить. Так же понятно, что для оптимизации работы наиболее правильным методом сохранения данных является использование одного и того же имени файла — таким образом мы не засоряем память.
В результате 10 экспериментов, проведенных по описанной выше схеме (в качестве рабочего решения для тестирования использовался блок, написанный на Zennoposter), установлено, что Google без проблем справляется с простыми числовыми капчами, но практически бесполезен при распознавании капчи, представленной на картинке ниже (верхняя часть — капча — нижняя часть — результат распознавания):
Итог эксперимента прост: продолжаем использовать Antigate далее. 1 бакс за 1000 распознанных капч — вполне нормальная цена, а многопоточность — никто не отменял.