Как отправить картинку на распознавание.
Список поддерживаемых заданий:
Solve Media, Facebook, Yandex, Steam, VKontakte, BotDetect, Google, HotMail, Avito и более 100.000 других видов.
Как выбрать нужную нейросеть под свой вид капчи:
Выберите нейросеть которая идеально подойдет под ваш тип капчи на странице https://cap.guru/ru/my/settings/
Изменения вступят в силу в течении 5 минут.
Method OLD - Самый универсальный метод, подходит под любые типы капчи, процент распознавания ниже чем у специальных.
General v1 - Общий метод распознавания капчи, с более точным распознаванием некоторых подвидов.
individual_v1 - Похож на предыдущий метод, но более точен к числовым капчам.
General Cyrillic - Общий метод для кириллических капч.
Отправка
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | Ключ можно посмотреть тут |
method | Строка | Да | post — говорит о том, что вы отправляете изображение с помощью multipart-фомы base64 — говорит о том, что вы отправляете изображение в формате base64 |
file | Файл | Да* | Файл изображения. * - обязателен, если вы отправляете картинку как файл (method=post) |
body | Строка | Да* | Изображение, закодированное в формат Base64, * - обязателен, если вы отправляете картинку в Base64 (method=base64) |
json | Число По умолчанию: 0 | Нет | 0 - Сервер отправит ответ в виде обычного текста 1 - Сервер отправит ответ в формате JSON |
vernet | Число | Нет | 2 - General v1 6 - General v2 22 - Arithmetic 12 - Rambler 18 - General Yandex 20 - Yandex, 6 ch. 16 - VKontakte 14 - SolveMedia 13 -Gibdd 9 - Ok.ru 17 - World of Tanks 5 - Hotmail Microsoft Пример: vernet=5 |
Пример запроса/ответа
Пример запроса
POST http://api.cap.guru/in.php
Host: api.cap.guru
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"method": "base64",
"body": "R0lGODlheAAoAAAAACwAAAAAeAAoAIcAAAAAADMAAGYAAJkAAMwAAP8AKwAAKzMAK2YAK5kAK8wAK/8AVQAAVTMAVWYAVZkAVcwAVf8AgAAAgDMAgGYAgJkAgMwAgP8AqgAAqjMAqmYAqpkAqswAqv8A1QAA1TMA1WYA1ZkA1cwA1f8A/wAA/zMA/2YA/5kA/8wA//8zAAAzADMzAGYzAJkzAMwzAP8zKwAzKzMzK2YzK5kzK8wzK/8zVQAzVTMzVWYzVZkzVcwzVf8zgAAzgDMzgGYzgJkzgMwzgP8zqgAzqjMzqmYzqpkzqswzqv8z1QAz1TMz1WYz1Zkz1cwz1f8z/wAz/zMz/2Yz/5kz/8wz//9mAABmADNmAGZmAJlmAMxmAP9mKwBmKzNmK2ZmK5lmK8xmK/9mVQBmVTNmVWZmVZlmVcxmVf9mgABmgDNmgGZmgJlmgMxmgP9mqgBmqjNmqmZmqplmqsxmqv9m1QBm1TNm1WZm1Zlm1cxm1f9m/wBm/zNm/2Zm/5lm/8xm//+ZAACZADOZAGaZAJmZAMyZAP+ZKwCZKzOZK2aZK5mZK8yZK/+ZVQCZVTOZVWaZVZmZVcyZVf+ZgACZgDOZgGaZgJmZgMyZgP+ZqgCZqjOZqmaZqpmZqsyZqv+Z1QCZ1TOZ1WaZ1ZmZ1cyZ1f+Z/wCZ/zOZ/2aZ/5mZ/8yZ///MAADMADPMAGbMAJnMAMzMAP/MKwDMKzPMK2bMK5nMK8zMK//MVQDMVTPMVWbMVZnMVczMVf/MgADMgDPMgGbMgJnMgMzMgP/MqgDMqjPMqmbMqpnMqszMqv/M1QDM1TPM1WbM1ZnM1czM1f/M/wDM/zPM/2bM/5nM/8zM////AAD/ADP/AGb/AJn/AMz/AP//KwD/KzP/K2b/K5n/K8z/K///VQD/VTP/VWb/VZn/Vcz/Vf//gAD/gDP/gGb/gJn/gMz/gP//qgD/qjP/qmb/qpn/qsz/qv//1QD/1TP/1Wb/1Zn/1cz/1f///wD//zP//2b//5n//8z///8AAAAAAAAAAAAAAAAI/wD3CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyYzoclELFMmlDA/igFAs2bNlyDRTLpxMAYAjmhs4uR4w6ZRADEsKgPA0yDNpE5/Zsx0lObQgsoWijlY9ahFmlxpZi0IFuOkrmINnm2KEMDWgj7L7ss0s+bbiTTvCqRKc0XBoGMvHl1q0+BMNAmL6hVYmCCxxnjlMoY8WarAujURN7RLkLJAn1B7IjUY13JnAFcjrpC8r7RpxoFd53VYM+rr1qMRxg3LdmDQ2xD5Bt4H1urpsXEnRX7N9zZhhQCG760dNXTku3WJyz0r9TlFyp73nf+Vftr6ZeoEuZuP+Hvg033etUOliaYl8IXc5e42aMCogRU3xFAaeaXBdZNFjwGgmXH1WEYYTl0tthBhYBG2nnZocVZQcwNhxtpykw20VFLCwWeTAaX1phCFXoUFAIBioCHGJB6ulyFNyl20n2RgcScQd8PFB11N9tV0oXwI8aUZWWipSNFvyiR42j7Q5LaUhOghRCFBHoaV2mk5MnmUhF/dN1NcUO132n0CbVlQgsCl1RZqLpKpEZyvGYVTgqm9NyRwRX2IY0If7oOZSIHSSRCLpy1WqGNZDpRfVOS5F51BboY0qZimYbZSeBseWNChTA55EIci1eWkhpa2qFBzNtJTtCqbhpL5G60ZJVjpDWQSU5qdtg1KpU3kPRoippHGxFFzaE2USaUYKhuSh65ulKy0HFX1JbbcSgRtt+CGK+645JZr7rnopqvuuuy26+678MYrb0AAOw==",
"json": 1
}
После отправки задания нам, вы должны получить в ответ 'OK|65787087' или {"status":1,"request":"65787087"} в случае успешного выполнения запроса. Пожалуйста, ознакомьтесь с полным списком возможных ошибок в случае если вы не получили номер задания.
Пример ответа
{
"status":1,
"request":"65787087"
}
Получение ответа
Параметр | Тип | Обязателен | Описание |
---|---|---|---|
key | Строка | Да | Ключ можно посмотреть тут |
action | Строка | Да | get — получить ответ |
id | Число | Да | ID капчи, полученный от in.php |
json | Число По умолчанию: 0 | Нет | 0 — сервер вернёт ответ в виде простого текста 1 — сервер вернёт ответ в формате JSON |
Пример запроса/ответа
Пример запроса
POST http://api.cap.guru/res.php
Host: api.cap.guru
Content-Type: application/json
{
"key": "YOUR_API_KEY",
"action": "get",
"id": "XXXXXXXXXXXXXXXXXX", // for example 65787087
"json": 1
}
После отправки задания нам, вы должны получить в ответ 'OK|W68HP' или {"status":1,"request":"W68HP"} в случае успешного выполнения запроса. Пожалуйста, ознакомьтесь с полным списком возможных ошибок в случае если вы не получили ответ.
Пример ответа
{
"status":1,
"request":"W68HP"
}
Распознавание через браузер.
Проверить работу сервиса и поддержку вашего вида капчи можно по адресу: http://imacros2.cap.guru/
Для этого нужно указать API ключ из личного кабинета и выбрать сохраненное изображение капчи.
Примеры
import requests
from io import BytesIO
import base64
import time
key = '17a1f02f43bfb8025f4ef3a56fc425cf'
url = 'https://test.cap.guru/web/_images/ex.png'
response = requests.get(url)
ee = base64.b64encode((response.content))
payload = {'key': key, 'method': 'base64', 'body': ee}
r = requests.post("http://api.cap.guru/in.php", data=payload)
time.sleep(10)
rt = r.text.split('|')
url = 'http://api.cap.guru/res.php?key='+key+'&id='+rt[1]
print(url);
response = requests.get(url)
print(response.content)
<?php
$file = base64_encode(file_get_contents("http://test.cap.guru/web/_images/aws/99737344449386000000.png"));
$json = [];
$json['key'] = "17a1f02f43bfb8025f4ef3a56fc425cf";
$json['method'] = "base64";
$json['click'] = "oth";
$json['textinstructions'] = "Amazon,Place a dot at the end of the car's path";
$json['body'] = $file;
$postdata = http_build_query($json);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-Type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('http://api.cap.guru/in.php', false, $context);
sleep(5);
//echo $server_output;
echo file_get_contents("http://api.cap.guru/res.php?key=17a1f02f43bfb8025f4ef3a56fc425cf&action=get&id=".explode("|", $result)[1]);
?>
var request = require('request');
var img = getBinanceBase64();
var YOUR_API_KEY = "17a1f02f43bfb8025f4ef3a56fc425cf";
(async() => {
var waw = await k(img);
console.log(waw);
})();
function delay(time) {
return new Promise(function(resolve) {
setTimeout(resolve, time)
});
}
async function k(img) {
return new Promise(async function(resolve2) {
let buffurl1 = img
var myJSONObject = {
"key": YOUR_API_KEY,
"method": "base64",
"body": buffurl1,
};
request({
url: "http://api.cap.guru/in.php",
method: "POST",
json: true,
body: myJSONObject
}, async function(error, response, body) {
console.log(body);
id = body.split("|")[1]
let res = await delay(5000).then(async() => {
let res2 = await get_result_request(id);
console.log(res2);
dd = res2.split("|")[1]
resolve2(dd )
});
});
});
function get_result_request(id) {
return new Promise(async resolve => {
return await request.get('http://api.cap.guru/res.php?key=' + YOUR_API_KEY + '&id=' + id + '&action=get', async function(error2, response2, body2) {
resolve(body2);
})
});
}
}
function getBinanceBase64(){
return "data:image/gif;base64,R0lGODlheAAoAAAAACwAAAAAeAAoAIcAAAAAADMAAGYAAJkAAMwAAP8AKwAAKzMAK2YAK5kAK8wAK/8AVQAAVTMAVWYAVZkAVcwAVf8AgAAAgDMAgGYAgJkAgMwAgP8AqgAAqjMAqmYAqpkAqswAqv8A1QAA1TMA1WYA1ZkA1cwA1f8A/wAA/zMA/2YA/5kA/8wA//8zAAAzADMzAGYzAJkzAMwzAP8zKwAzKzMzK2YzK5kzK8wzK/8zVQAzVTMzVWYzVZkzVcwzVf8zgAAzgDMzgGYzgJkzgMwzgP8zqgAzqjMzqmYzqpkzqswzqv8z1QAz1TMz1WYz1Zkz1cwz1f8z/wAz/zMz/2Yz/5kz/8wz//9mAABmADNmAGZmAJlmAMxmAP9mKwBmKzNmK2ZmK5lmK8xmK/9mVQBmVTNmVWZmVZlmVcxmVf9mgABmgDNmgGZmgJlmgMxmgP9mqgBmqjNmqmZmqplmqsxmqv9m1QBm1TNm1WZm1Zlm1cxm1f9m/wBm/zNm/2Zm/5lm/8xm//+ZAACZADOZAGaZAJmZAMyZAP+ZKwCZKzOZK2aZK5mZK8yZK/+ZVQCZVTOZVWaZVZmZVcyZVf+ZgACZgDOZgGaZgJmZgMyZgP+ZqgCZqjOZqmaZqpmZqsyZqv+Z1QCZ1TOZ1WaZ1ZmZ1cyZ1f+Z/wCZ/zOZ/2aZ/5mZ/8yZ///MAADMADPMAGbMAJnMAMzMAP/MKwDMKzPMK2bMK5nMK8zMK//MVQDMVTPMVWbMVZnMVczMVf/MgADMgDPMgGbMgJnMgMzMgP/MqgDMqjPMqmbMqpnMqszMqv/M1QDM1TPM1WbM1ZnM1czM1f/M/wDM/zPM/2bM/5nM/8zM////AAD/ADP/AGb/AJn/AMz/AP//KwD/KzP/K2b/K5n/K8z/K///VQD/VTP/VWb/VZn/Vcz/Vf//gAD/gDP/gGb/gJn/gMz/gP//qgD/qjP/qmb/qpn/qsz/qv//1QD/1TP/1Wb/1Zn/1cz/1f///wD//zP//2b//5n//8z///8AAAAAAAAAAAAAAAAI/wD3CRxIsKDBgwgTKlzIsKHDhxAjSpxIsaLFixgzatzIsaPHjyBDihxJsqTJkyYzoclELFMmlDA/igFAs2bNlyDRTLpxMAYAjmhs4uR4w6ZRADEsKgPA0yDNpE5/Zsx0lObQgsoWijlY9ahFmlxpZi0IFuOkrmINnm2KEMDWgj7L7ss0s+bbiTTvCqRKc0XBoGMvHl1q0+BMNAmL6hVYmCCxxnjlMoY8WarAujURN7RLkLJAn1B7IjUY13JnAFcjrpC8r7RpxoFd53VYM+rr1qMRxg3LdmDQ2xD5Bt4H1urpsXEnRX7N9zZhhQCG760dNXTku3WJyz0r9TlFyp73nf+Vftr6ZeoEuZuP+Hvg033etUOliaYl8IXc5e42aMCogRU3xFAaeaXBdZNFjwGgmXH1WEYYTl0tthBhYBG2nnZocVZQcwNhxtpykw20VFLCwWeTAaX1phCFXoUFAIBioCHGJB6ulyFNyl20n2RgcScQd8PFB11N9tV0oXwI8aUZWWipSNFvyiR42j7Q5LaUhOghRCFBHoaV2mk5MnmUhF/dN1NcUO132n0CbVlQgsCl1RZqLpKpEZyvGYVTgqm9NyRwRX2IY0If7oOZSIHSSRCLpy1WqGNZDpRfVOS5F51BboY0qZimYbZSeBseWNChTA55EIci1eWkhpa2qFBzNtJTtCqbhpL5G60ZJVjpDWQSU5qdtg1KpU3kPRoippHGxFFzaE2USaUYKhuSh65ulKy0HFX1JbbcSgRtt+CGK+645JZr7rnopqvuuuy26+678MYrb0AAOw==";
}