Как отправить каптчу (изображение) на распознание в CapMonster?

Anton1986

Новичок
Регистрация
11.12.2020
Сообщения
6
Благодарностей
3
Баллы
3
Какого формата POST-запрос я должен передать на localhost, чтобы CapMonster принял картинку оттуда и распознав текст вернул ответ в рамках этого же POST-запроса? Какой «родной» формат запросов у CapMonster?

Я не хочу эмулировать внешние каптча-сервисы и использовать их API для отправки каптч.
Принимаем, что эмуляция всех внешних каптча-сервисов отключена.

Ну должно же у программы быть свое родное API???
Где описание доступных методов и примеры?


Каптчи у меня максимально простые, пример прикрепляю.
 

Вложения

  • 3,2 КБ Просмотры: 87
Последнее редактирование:

TopSerf

Client
Регистрация
12.02.2017
Сообщения
1 403
Благодарностей
203
Баллы
63
Да вроде так же как на рукапчу например.
Единственное это нужно в запрос ещё имя модуля добавить.
например для рекапчи это CapMonsterModule=ZennoLab.ReCaptcha2, в место этого модуль этой капчи пропиши.
а если не указывать оно вроде универсальным начинает решать.
 

Anton1986

Новичок
Регистрация
11.12.2020
Сообщения
6
Благодарностей
3
Баллы
3
Да вроде так же как на рукапчу например.
Единственное это нужно в запрос ещё имя модуля добавить.
например для рекапчи это CapMonsterModule=ZennoLab.ReCaptcha2, в место этого модуль этой капчи пропиши.
а если не указывать оно вроде универсальным начинает решать.
Да в том-то и дело, что не хочу я использовать API внешних сервисов распознания!

Просто потому, что их API предполагают, что на разгадку каптчи нужно время, т. е. все они возвращают ответ не сразу, соответственно если я используя их API, то и CapMonster будет поступать также и возвращать ответ не сразу, а только на 2-ом POST-запросе, хотя вполне мог бы делать это мгновенно и в рамках того же POST-запроса!

Закономерно возникает вопрос... где описание «родных» методов CapMonster не предполагающих никаких искусственных задержек?
 
Последнее редактирование:

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Ну должно же у программы быть свое родное API???
Нет, в этом нет смысла, только доп. траты на разработку и поддержку.
Просто потому, что их API предполагают, что на разгадку каптчи нужно время, т. е. все они возвращают ответ не сразу, соответственно если я используя их API, то и CapMonster будет поступать также и возвращать ответ не сразу, а только на 2-ом POST-запросе, хотя вполне мог бы делать это мгновенно и в рамках того же POST-запроса!
Используйте pingback API.
рукапча:
curl "http://127.0.0.3:80/in.php" --data "method=userrecaptcha&googlekey=6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-&pageurl=https://www.google.com&key=sampleKey&pingback=http://httpbin.org/anything"
антикапча:
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d "{ ""clientKey"":""YOUR_API_KEY"", ""callbackUrl"":""http://httpbin.org/anything"", ""task"": { ""type"":""NoCaptchaTaskProxyless"", ""websiteURL"":""http://makeawebsitehub.com/recaptcha/test.php"", ""websiteKey"":""6LfI9IsUAAAAAKuvopU0hfY8pWADfR_mogXokIIZ"" }, ""softId"":0, ""languagePool"":""en""}" https://api.anti-captcha.com/createTask
 
Последнее редактирование:

VladZen

Administrator
Команда форума
Регистрация
05.11.2014
Сообщения
22 453
Благодарностей
5 912
Баллы
113
Не совсем понятно почему вы решили, что методы API внешних сервисов дают какие-то задержки в КапМонстре, а некий родной API будет отдавать ответ без задержек.
В сервисе капчу разгадывает человек, в КапМонстре - автоматический модуль, в этом все отличие.
Для отправки капч на распознавание в КапМонстре используются теже методы что и в API сервисов, в этом смысл, когда мы говорим, что КапМонстр эмулирует API сервисов.
Чтобы отправлять капчи напрямую в КапМонстр, можно использовать такие запросы.
http://ip-капмонстра:порт/in.php
http://ip-капмонстра:порт/res.php
или
http://ip-капмонстра:порт/createTask
http://ip-капмонстра:порт/getResult
 

Anton1986

Новичок
Регистрация
11.12.2020
Сообщения
6
Благодарностей
3
Баллы
3
Был не прав. Поэкспериментировал немного, на удивление CapMonster разгадывает капчи быстрее, чем я успеваю отправить второй запрос, чтобы узнать состояние распознавания. Соответственно, для меня это хорошо тем, что результат я могу получить практически сразу, без дополнительных многократных проверок. Оставляю пример для будущих поколений:
C#:
captcha_url = 'https://ссылка_на_изображение_капчу';
blob = await (await fetch(captcha_url)).blob();

fd = new FormData();
fd.append('file', blob, 'get.jpg');
fd.append('json', 1);

response = await (await fetch('http://127.0.0.3/in.php', {
    method: 'POST',
    body: fd
})).json();

result_url = 'http://127.0.0.3/res.php?action=get&id=' + response.request;

result = await (await fetch(result_url)).text();
Только нужно как-то обойти CORS, сам я весь код запускаю в фоновом процессе браузерного расширения, а там правила можно устанавливать самому, в том числе и обойти CORS при желании. Кому-то другому возможно будет проще поднять прокси.
 
Последнее редактирование:
  • Спасибо
Реакции: VladZen

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)