Как решить текстовую капчу
Поле выше — это текстовая капча: короткая строка искажённых символов, нанесённых на изображение, которую нужно прочитать и ввести. На этой странице показаны три простых способа решить её и автоматически получить правильные символы: с помощью браузерного расширения CapSkip, в собственном коде через CapSkip SDK или перенаправив в CapSkip сервис распознавания капчи, который уже используют ваши инструменты. CapSkip распознаёт изображение с помощью OCR прямо на устройстве, поэтому нет платы за каждое решение и ничего не покидает вашу машину.
Вариант 1: решите её с помощью расширения для браузера
Самый простой способ одолеть текстовую капчу — это Расширение CapSkip для распознавания капчи для Chrome и Firefox. После быстрой одноразовой настройки, которая показывает ему, какое изображение читать и куда вводить, он заполняет ответ за вас — без написания кода.
Установите расширение
Добавьте CapSkip из Chrome Web Store или Firefox Add-ons. Он также работает в Brave, Edge, Opera и Vivaldi.
Запустите приложение CapSkip
Установите и откройте десктопное приложение CapSkip. Оно выполняет распознавание на вашем устройстве и работает в паре с расширением.
Укажите капчу
Для капч-картинок нужен один быстрый шаг. В CapSkip нажмите Выбрать на странице, затем щёлкните по изображению капчи и полю ответа. Это делается только один раз на страницу.
Затем CapSkip считывает символы и заполняет выбранное вами поле, так что всё, что вам нужно, — нажать Проверить. Вы также можете привязать его, кликнув по изображению правой кнопкой мыши (Пометить как источник капчи) и поле (Введите ответ на капчу здесь). Эта разовая настройка нужна только для капч с картинками и текстовых капч, а не для reCAPTCHA или Turnstile. См. руководство по настройке.
Вариант 2: решение с помощью CapSkip SDK
Создаёте автоматизацию, парсер или бота? Используйте SDK для распознавания капчи CapSkip чтобы решать текстовые капчи из Python, Node.js, PHP или C#. Вы передаёте изображение капчи в normal() и CapSkip возвращает символы, которые распознаёт. Ни site key, ни URL страницы не нужны, потому что CapSkip работает прямо с изображения.
"captcha.png""https://site.com/captcha.php""data:image/png;base64,..."Прежде чем начать
CapSkip решает капчу локально. Скачайте и запустите Десктопное приложение CapSkip и держите его открытым в фоновом режиме. SDK обращается к нему по 127.0.0.1:8080, поэтому нет обращений к облаку и нет платы за каждое решение.
Установите SDK
Добавьте официальный клиент CapSkip в свой проект.
pip install capskipnpm install capskipcomposer require capskip/capskipdotnet add package CapSkipСчитайте изображение капчи и получите символы
Передайте изображение капчи в normal(). Он принимает путь к файлу, URL изображения или data URI в формате base64. CapSkip выполняет OCR и возвращает символы в виде обычного текста.
from capskip import CapSkip
# Connect to the CapSkip app running on your machine
solver = CapSkip(host="127.0.0.1", port=8080)
# Read the distorted characters from the captcha image
result = solver.normal("captcha.png")
answer = result["code"] # the characters CapSkip read
print(answer)const { CapSkip } = require('capskip');
// Connect to the CapSkip app running on your machine
const solver = new CapSkip({ host: '127.0.0.1', port: 8080 });
(async () => {
// Read the distorted characters from the captcha image
const result = await solver.normal('captcha.png');
const answer = result.code; // the characters CapSkip read
console.log(answer);
})();<?php
require 'vendor/autoload.php';
use CapSkip\CapSkip;
// Connect to the CapSkip app running on your machine
$solver = new CapSkip(['host' => '127.0.0.1', 'port' => 8080]);
// Read the distorted characters from the captcha image
$result = $solver->normal('captcha.png');
$answer = $result['code']; // the characters CapSkip read
echo $answer;using CapSkip;
// Connect to the CapSkip app running on your machine
var solver = new CapSkipClient(host: "127.0.0.1", port: 8080);
// Read the distorted characters from the captcha image
var result = await solver.NormalAsync("captcha.png");
string answer = result.Code; // the characters CapSkip read
Console.WriteLine(answer);Вы получаете символы с изображения, например 5F59R, готовый для ввода в поле.
Используйте ответ: введите его и проверьте
Введите символы в текстовое поле капчи и отправьте. В этом демо это поле — .captcha-input а кнопка — .captcha-btn, так что вы можете заполнить и отправить её прямо из браузера.
// 1. Put the recognized characters into the text field
document.querySelector('.captcha-input').value = answer;
// 2. Press the Verify button
document.querySelector('.captcha-btn').click();Использование CapSkip на других сайтах с текстовой капчей
Текстовая капча — это всегда изображение искажённых символов. Чтобы решить её где угодно, возьмите это изображение и передайте его normal() in whichever form is easiest:
- Из
<img>тег: передайте егоsrcпрямо в CapSkip как URL изображения, или щёлкните правой кнопкой и сохраните его как файл. - Из
<canvas>: вызовcanvas.toDataURL()чтобы получить строку base64, а затем передайте её. Это демо рисует свою капчу на<canvas class="captcha-text__canvas">, поэтому здесь подходит base64. - Со скриншота: захватите только элемент капчи и передайте сохранённый файл или его base64.
Решение из изображения base64
Когда капча представляет собой canvas или встроенный data URI, передавайте строку base64 напрямую:
# Grab the canvas in the browser with canvas.toDataURL(), then:
result = solver.normal("data:image/png;base64,iVBORw0KGgo...")
answer = result["code"] # the characters CapSkip read// Grab the canvas in the browser with canvas.toDataURL(), then:
const result = await solver.normal('data:image/png;base64,iVBORw0KGgo...');
const answer = result.code; // the characters CapSkip read// A base64 data URI works anywhere a file path does
$result = $solver->normal('data:image/png;base64,iVBORw0KGgo...');
$answer = $result['code']; // the characters CapSkip read// A base64 data URI works anywhere a file path does
var result = await solver.NormalAsync("data:image/png;base64,iVBORw0KGgo...");
string answer = result.Code; // the characters CapSkip readДля текстовой капчи не нужны ни site key, ни URL страницы. CapSkip читает изображение на вашем собственном устройстве, поэтому это работает даже на офлайн- или внутренних страницах.
Не используете Python, Node.js, PHP или C#? SDK — это всего лишь обёртки над HTTP API CapSkip (стандартный in.php / res.php endpoints), поэтому вы можете решать текстовые капчи из любой язык, фреймворк или инструмент. См. Справочник по Image Captcha API.
Вариант 3: направьте существующий код сервиса-решателя в CapSkip
Уже решаете текстовые капчи через сервис с оплатой за капчу, такой как 2Captcha, Anti-Captcha или CapMonster? Вам не нужно переписывать ни строки. Приложение CapSkip включает эмулятор сервиса который локально говорит на собственных API этих сервисов: выберите используемый сервис, нажмите Добавить в файл hosts, и на каждый запрос, который ваш бот, парсер или готовый инструмент уже отправляет ему, отвечает CapSkip на вашей собственной машине — по фиксированной цене вместо счёта за каждое решение.
Выберите свой сервис
Откройте приложение CapSkip и выберите сервис, с которым уже работает ваш код: 2Captcha, RuCaptcha, Anti-Captcha, CapMonster Cloud, CapSolver, DeathByCaptcha, SolveCaptcha или Captchas.io.
Добавить в файл hosts
Один клик в приложении направляет домен этого сервиса на CapSkip, поэтому вызовы, которые делает ваш инструмент, обрабатываются на вашей машине, а не уходят к платному API.
Запускайте свой инструмент без изменений
Тот же API-ключ, тот же запрос, тот же цикл опроса. CapSkip отвечает в собственном формате этого сервиса, и ваш код получает обратно символы, считанные с изображения.
Ничего из приведённого ниже не меняется при переходе. Это тот же вызов, который ваш код делает сегодня, только теперь текстовые капчи решаются локально, и символы, распознанные с изображения, возвращаются из CapSkip:
POST https://2captcha.com/in.php
key=YOUR_EXISTING_API_KEY
method=base64
body=BASE64_OF_THE_CAPTCHA_IMAGE
GET https://2captcha.com/res.php?key=YOUR_EXISTING_API_KEY&action=get&id=2122988149
OK|W7H4KP the characters CapSkip readКлиентские библиотеки работают так же: в стиле Anti-Captcha createTask / getTaskResult пара, или любая обёртка, построенная на одном из этих сервисов, продолжает работать, как только включён эмулятор. Полный справочник по запросам и ответам находится в Документация по API CapSkip.
Подробнее о решении текстовых капч
Руководства по инструментам и языкам, которые обычно используют вместе с этой демонстрацией.
Об этом демо текстовой капчи
Эта страница — живая демо текстовой капчи где вы можете в реальном времени наблюдать, как решается классическая капча на распознавание символов. Текстовая капча показывает короткую строку искажённых символов, нарисованных на картинке, и просит вас прочитать их и ввести обратно. Это один из старейших и самых распространённых типов капчи, который используется для блокировки спама, фейковых регистраций и автоматической отправки форм.
Разработчики, тестировщики и инженеры по автоматизации могут использовать эту тестовую страницу с текстовой капчей, чтобы оценить производительность распознавания капчи на основе OCR, проверить интеграции и изучить, как генерируются и проверяются задачи на распознавание символов. Нужно ли вам решить одну текстовую капчу или автоматизировать тысячи, CapSkip — это решение для текстовой капчи который работает тремя способами: без кода расширение для распознавания капчи для Chrome и Firefox, и SDK для распознавания капчи для Python, Node.js, PHP и C#, а также готовую эмуляцию сервисов распознавания капчи, за которые вы, возможно, сегодня платите за каждое решение, — всё с безлимитным решением по единой фиксированной цене. Все три работают на одном и том же десктопном AI распознавание капчи, устанавливается один раз и работает на вашей машине, поэтому ничто не ставится в очередь на удалённом сервере и ничто не тарифицируется за каждое решение.
