Распознать код на изображении (капчи) с помощью 1С и сайта http://antigate.com/

28.06.14

Интеграция - WEB-интеграция

Нужно с помощь 1с распознать код на изображении (капчи). Решить данную проблему удалось используя API сайта http://antigate.com/panel.php?action=api

Для распознавания кода на изображении (капчи) потребуется аккаунт в системе antigate.

Регистрация аккаунта в системе antigate:

  1. Зайдите на сайт http://antigate.com/panel.php
  2. Заполните поля регистрационной формы и нажмите "регистрация"
  3. Войдите в систему
  4. Перейдите к пополнению баланса (финансы > пополнить баланс)
  5. Введите необходимую сумму (можно ввести 0.1)
  6. Следуйте указаниям системы.
Рекомендую выставлять ставку 2 (распознавание > ставки)
После регистрации и пополнения баланса перейдите к настройкам аккаунта (инструменты > настройки аккаунта).
Скопируйте ключ капчи(captcha ключ).
Теперь, когда у нас есть аккаунт в системе antigate и captcha ключ, приступим к разгадыванию кода на изображении(капчи):
  1. Нужно сохранить изображение(капчу);
  2. Отправить изображение(капчу) и получить идентификатор капчи;
  3. Получить символы с изображения(капчи).

1. Сохраняем изображение(капчу):

&НаКлиенте
Процедура СохранитьКартинкуКапчи()		
	СслкаНаКапчу = "Ваша ссылка на капчу";
	Сервер = "Ваш сервер";
	АдресРесурсаКапчи = СтрЗаменить(СслкаНаКапчу,Сервер ,"")
Попытка
		HTTP =  Новый HTTPСоединение(Сервер);
		ФайлРезультатаКапчи = ПолучитьИмяВременногоФайла("JPG");
		
		КапчаКартинка = Новый HTTPЗапрос(АдресРесурсаКапчи);
		КапчаКартинка.Заголовки.Вставить("Referer", Элементы.ПолеHTMLДокумента.Документ.url);
		КапчаКартинка.Заголовки.Вставить("User-Agent", Элементы.ПолеHTMLДокумента.ИнформацияПрограммыПросмотра);
		КапчаКартинка.Заголовки.Вставить("Cookie", Элементы.ПолеHTMLДокумента.Документ.cookie);
		ОтветКапчи = HTTP.Получить(КапчаКартинка);
		ДвоичныеДанные = ОтветКапчи.ПолучитьТелоКакДвоичныеДанные();
		
		Попытка 			
			ДвоичныеДанные.Записать(ФайлРезультатаКапчи);	
			КапчаИД = ФайлРезультатаКапчи;
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = "Картинка капчи записана. " + ФайлРезультатаКапчи;
			Сообщение.Сообщить();
				
			ОтправитьКапчуИПолучитьИДКапчи(ФайлРезультатаКапчи);//(следующий пункт №2)
		Исключение
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = "Картинка капчи не записана. ";
			Сообщение.Сообщить(); 
		КонецПопытки; 
			
	Исключение
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Не удалось установить соединение и получить картинку капчи. " + ОписаниеОшибки();
		Сообщение.Сообщить(); 
	КонецПопытки;
КонецПроцедуры

2. Отправляем изображение(капчу) и получаем идентификатор капчи:

&НаКлиенте 
Процедура ОтправитьКапчуИПолучитьИДКапчи(ФайлРезультатаКапчи)
	Сервер = "antigate.com";
	АдресРесурса = "/in.php";
	Попытка
		HTTP =  Новый HTTPСоединение(Сервер);
		ФайлЗапроса = Новый Файл(ПолучитьИмяВременногоФайла("TXT"));
		
		Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", "");
		
		ФайлОтправки = Новый ЗаписьТекста(ФайлЗапроса.ПолноеИмя, КодировкаТекста.UTF8, Символы.ПС, Ложь); 
	        //Определяем раздел двоичных данных 
		ФайлОтправки.ЗаписатьСтроку("--" + Boundary); 
	        ФайлОтправки.ЗаписатьСтроку("Content-Disposition: form-data; name=""method""" + Символы.ПС + Символы.ПС); 				
		ФайлОтправки.ЗаписатьСтроку("base64");
		
		ФайлОтправки.ЗаписатьСтроку("--" + Boundary); 
	        ФайлОтправки.ЗаписатьСтроку("Content-Disposition: form-data; name=""key""" + Символы.ПС + Символы.ПС); 				
		ФайлОтправки.ЗаписатьСтроку(XMLСтрока(СокрЛП(КлючАнтиКапчи)));
		
	        ФайлОтправки.ЗаписатьСтроку("--" + Boundary); 
		ФайлОтправки.ЗаписатьСтроку("Content-Disposition: form-data; name=""body"""); 
		ФайлОтправки.ЗаписатьСтроку("Content-Type: image/jpeg" + Символы.ПС + Символы.ПС); 
		СодержимоеФайла = Base64Строка(Новый ДвоичныеДанные(ФайлРезультатаКапчи));
		ФайлОтправки.ЗаписатьСтроку(СодержимоеФайла);
		
		ФайлОтправки.ЗаписатьСтроку("--" + Boundary); 
	        ФайлОтправки.ЗаписатьСтроку("Content-Disposition: form-data; name=""numeric""" + Символы.ПС + Символы.ПС); 				
		ФайлОтправки.ЗаписатьСтроку("1");
		
		//Завершение сообщения для сервера 
	        ФайлОтправки.ЗаписатьСтроку("--" + Boundary + "--"); 

	        ФайлОтправки.Закрыть(); 
		
		ЗаголовокHTTP = Новый Соответствие(); 
		//Обязательные поля заголовка 
		//Укажем формат данных Content-Type 
	        ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);
		ЗаголовокHTTP.Вставить("Accept-Language", "ru");
		
		HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса, ЗаголовокHTTP) ;
		HTTPЗапрос.УстановитьИмяФайлаТела(ФайлЗапроса.ПолноеИмя);
		
	        ФайлРезультата = ПолучитьИмяВременногоФайла("TXT");
		
		Ответ = HTTP.ОтправитьДляОбработки(HTTPЗапрос,ФайлРезультата);
		Ответ = Новый ТекстовыйДокумент();
		Ответ.Прочитать(ФайлРезультата, КодировкаТекста.UTF8);
		
		ТекстОтвета = Ответ.ПолучитьТекст();
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = ТекстОтвета + " После передачи капчи ";
		Сообщение.Сообщить(); 
		Если Лев(ТекстОтвета,3) = "OK|" Тогда
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = "Ждем 10 секунд";
			Сообщение.Сообщить(); 
			
			Задержка(10);
			
			ПолучитьСимволыСКапчи(КапчаИД);
		ИначеЕсли ТекстОтвета = "ERROR_NO_SLOT_AVAILABLE" Тогда
			ОтправитьКапчуИПолучитьИДКапчи(ФайлРезультатаКапчи);	
		Иначе
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = "Капча отправлена, но есть ошибки. Код ошибки: " + ТекстОтвета;
			Сообщение.Сообщить();	
		КонецЕсли; 
	Исключение
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Не удалось установить соединение и получить картинку капчи. " + ОписаниеОшибки();
		Сообщение.Сообщить(); 
	КонецПопытки;
КонецПроцедуры

3. Получаем символы с изображения(капчи):

&НаКлиенте 
Процедура ПолучитьСимволыСКапчи(КапчаИД)
	Сервер = "antigate.com";
	АдресРесурса = "/res.php?key="+КлючАнтиКапчи+"&action=get&id=" + КапчаИД;
	Попытка
		HTTP =  Новый HTTPСоединение(Сервер);
		ФайлРезультатаКапчиИД = ПолучитьИмяВременногоФайла("TXT");
		
		HTTPЗапрос = Новый HTTPЗапрос(АдресРесурса);
		
		ОтветКапчиИД = HTTP.Получить(HTTPЗапрос,ФайлРезультатаКапчиИД);
		ОтветКапчиИД = Новый ТекстовыйДокумент();
		ОтветКапчиИД.Прочитать(ФайлРезультатаКапчиИД, КодировкаТекста.UTF8);
		
		ТекстОтветаСимволыСКапчи = ОтветКапчиИД.ПолучитьТекст();
		
		Если Лев(ТекстОтветаСимволыСКапчи,3) = "OK|" Тогда
			СимволыСКапчи = СокрЛП(СтрЗаменить(ТекстОтветаСимволыСКапчи,"OK|",""));
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = СимволыСКапчи + " - символы с капчи";
			Сообщение.Сообщить(); 
		ИначеЕсли СокрЛП(ТекстОтветаСимволыСКапчи) = "CAPCHA_NOT_READY" Тогда 
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = "" + ТекстОтветаСимволыСКапчи + Символы.ПС + "Ждем еще 5 секунд";
			Сообщение.Сообщить(); 
			
			Задержка(5);
			ПолучитьСимволыСКапчи(КапчаИД);
		Иначе
			Сообщение = Новый СообщениеПользователю;
			Сообщение.Текст = "Капча не распознана. Код ошибки: " + ТекстОтветаСимволыСКапчи;
			Сообщение.Сообщить();	
		КонецЕсли;		
	Исключение
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Не удалось установить соединение и получить символы с капчи. " + ОписаниеОшибки();
		Сообщение.Сообщить(); 	
	КонецПопытки;
КонецПроцедуры

капча Капча распознать капчу antigate.com antigate

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16076    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18146    10    15    

16

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

25200 руб.

28.05.2015    85360    26    51    

50

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    12987    33    8    

12

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16604    43    49    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. OldthiefXXX 153 29.06.14 17:30 Сейчас в теме
2. seermak 665 30.06.14 07:05 Сейчас в теме
3. eduardpetrovych 31 01.07.14 11:58 Сейчас в теме
(1) OldthiefXXX, не нашел готового решения - разбирался сам. Вот тем что получилось делюсь со всеми.
4. creatermc 27 02.07.14 09:54 Сейчас в теме

Не дурно, я бы сказал интересно.
5. eduardpetrovych 31 02.07.14 18:57 Сейчас в теме
Если у кого то есть другие решения моей задачи, прошу поделится если можете...буду рад ознакомится
6. stanru1 91 15.08.14 16:20 Сейчас в теме
Сам изобретал такой же велосипед, и никак не хотел уходить ключ в антигейт. Благодаря этой обработке понял, где у меня была ошибка =) Спасибо!
7. vslimv 27.01.15 07:43 Сейчас в теме
(6) stanru1, Аналогичная ситуация)) Решил у себя небольшую проблемку.
Статье однозначно +. Автору спасибо, хоть и очень запоздало))
8. Agregad 10.03.15 13:31 Сейчас в теме
Здравствуйте.
разве перед вызовом "ПолучитьСимволыСКапчи(КапчаИД);" не надо вырезать ИД с ответа?
9. eduardpetrovych 31 14.03.15 00:25 Сейчас в теме
(8) Agregad, ничего не нужно вырезать КапчаИД это сохраненная картинка капчи, её надо передать в Антигейт для распознавания
10. vitalya24 235 31.05.15 23:01 Сейчас в теме
Вам спасибо за публикацию, но вот сейчас переделыю на rucaptcha, параметры апи такие же 1 в 1, но не могу передать капчу пишет что ERROR_ZERO_CAPTCHA_FILESIZE, капча есть и ее размер 2-3 кб, и как пишут в описании апи уже кодирую юрл энкод. Но похоже не отправляется капча на сайт толком... может что-то подскажете?
11. 1c_programmist 05.07.15 12:40 Сейчас в теме
Ооооо, крутая крутотень. Как раз ищу подобное. Большое спасибо. Сейчас тестирую
12. capitan 2484 12.03.16 21:34 Сейчас в теме
Не взлетит.
Если запрашивать капчу с сервера - он вернет следующую картинку, а не ту которую надо ввести на странице запроса.
13. eduardpetrovych 31 13.03.16 01:17 Сейчас в теме
(12) capitan, в процедуре СохранитьКартинкуКапчи(), когда мы запрашываем картинку с сервера то мы передаем "Cookie" в HTTPЗапрос, без них возвращает новую картинку, а не ту с которой нужно ввести изображение, с ними возвращает нужную картинку.

P.S. Код полностью рабочий, работал он в этой обработке - Бот для он-лайн игры GanjaWars.ru (ГБот) , пока там не поменяли защиту, раньше нужно было ввести цыфры с картинки, а сейчас сопоставить две картинки - я это планирую доделать.
14. capitan 2484 10.05.16 14:46 Сейчас в теме
А вот и реальная задачка ;)
https://egrul.nalog.ru/
Взлетит ?
15. eduardpetrovych 31 10.05.16 18:46 Сейчас в теме
(14) capitan, без проблем взлетит, нужно только правильную картинку отправить
19. KroVladS 34 07.10.17 13:35 Сейчас в теме
(14)
А вот и реальная задачка ;)
https://egrul.nalog.ru/
Взлетит ?


Взлетит.
16. capitan 2484 11.05.16 14:08 Сейчас в теме
Есть очень полезное расширение конфигурации http://infostart.ru/public/510293/
Попробуйте в него добавить своим методом распознавание, а я своим.
Ваш проще, если он взлетит, то и чудесно.
17. пользователь 23.05.17 10:37
Сообщение было скрыто модератором.
...
18. KroVladS 34 07.10.17 13:35 Сейчас в теме
После небольшого допила всё отлично работает. Спасибо.
Не реализованы методы API по оспариванию неправильных капч.
Так-же при использовании сервиса нужно понимать что это биржа и стоимость распознавания может меняться как в меньшую, так и в большую сторону, а может оказаться что все работники системы ушли на выходные и всё :)
20. VKuser139072386 22.05.20 10:06 Сейчас в теме
подскажите как скачать бота на гв?
Оставьте свое сообщение