Solve Media CAPTCHA (теперь часть Permit.io / Radius Networks) представляла собой основанную на рекламе CAPTCHA, которая заменяла искаженный случайный текст брендовыми сообщениями и слоганами. Вместо ввода «aX3kP» пользователи вводили узнаваемую фразу, например «Качество, которому можно доверять».
Хотя Solve Media сегодня менее распространена, она все еще появляется на некоторых веб-сайтах. Он работает как стандартная текстовая CAPTCHA и может быть решен с помощью того же подхода к распознаванию изображений.
Как работает Solve Media
- Виджет загружает и отображает рекламное сообщение в виде изображения.
- Пользователь читает фразу бренда и вводит ее в поле ввода.
- Ответ проверяется серверами Solve Media.
- Если все верно, отправка формы продолжается.
┌─────────────────────────────────┐
│ │
│ "Taste The Rainbow" │
│ │
├─────────────────────────────────┤
│ Type the phrase: [____________] │
│ [Verify] │
└─────────────────────────────────┘
Solve Media против стандартных текстовых CAPTCHA
| Особенность | Решить Медиа | Стандартная текстовая капча |
|---|---|---|
| Текстовый контент | Фирменные фразы, английские слова | Случайные персонажи |
| Читабельность | Высокий (предназначен для читаемости) | Низкий (должен быть жестким) |
| Искажение | Минимальный | Тяжелый |
| Модель дохода | Реклама | Никто |
| Сложность для OCR | Легко (чистый текст) | Жесткий (искаженный) |
| Пользовательский опыт | подходящий (узнаваемые слова) | Хуже (трудно читать) |
Идентификация Solve Media на странице
Ищите эти маркеры:
<!-- Solve Media script -->
<script src="https://api.solvemedia.com/papi/challenge.script"></script>
<!-- Widget container -->
<div id="adcopy-outer"></div>
<!-- Hidden response fields -->
<input type="hidden" name="adcopy_challenge" />
<input type="hidden" name="adcopy_response" />
Элементы с идентификаторами, начинающимися с adcopy- или solvemedia, обозначают Solve Media CAPTCHA.
Решение Solve Media с помощью CaptchaAI
Поскольку Solve Media отображает текст на изображении, его можно решить с помощью стандартного метода распознавания изображений:
Питон
import requests
import time
import base64
API_KEY = "YOUR_API_KEY"
# Capture the CAPTCHA image
# Method 1: Screenshot the widget
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get("https://example.com/page-with-solvemedia")
captcha_img = driver.find_element(By.CSS_SELECTOR, "#adcopy-puzzle-image img")
captcha_img.screenshot("solvemedia.png")
# Submit to CaptchaAI
with open("solvemedia.png", "rb") as f:
img_b64 = base64.b64encode(f.read()).decode()
response = requests.post("https://ocr.captchaai.com/in.php", data={
"key": API_KEY,
"method": "base64",
"body": img_b64,
"phrase": 1, # Contains spaces (multi-word phrase)
"json": 1
})
task_id = response.json()["request"]
# Poll for solution
for _ in range(30):
time.sleep(5)
result = requests.get("https://ocr.captchaai.com/res.php", params={
"key": API_KEY, "action": "get", "id": task_id, "json": 1
}).json()
if result.get("status") == 1:
text = result["request"]
print(f"Phrase: {text}")
break
# Type the phrase
driver.find_element(By.CSS_SELECTOR, "#adcopy_response").send_keys(text)
driver.find_element(By.CSS_SELECTOR, "form").submit()
Node.js
const axios = require('axios');
const fs = require('fs');
async function solveSolveMedia(imagePath) {
const imageB64 = fs.readFileSync(imagePath).toString('base64');
const submit = await axios.post('https://ocr.captchaai.com/in.php', null, {
params: {
key: 'YOUR_API_KEY',
method: 'base64',
body: imageB64,
phrase: 1,
json: 1
}
});
const taskId = submit.data.request;
for (let i = 0; i < 30; i++) {
await new Promise(r => setTimeout(r, 5000));
const res = await axios.get('https://ocr.captchaai.com/res.php', {
params: { key: 'YOUR_API_KEY', action: 'get', id: taskId, json: 1 }
});
if (res.data.status === 1) return res.data.request;
}
throw new Error('Timeout');
}
Ключевые соображения
| Кончик | Почему |
|---|---|
Установить phrase=1 |
Решить Медиа-фразы содержат пробелы |
Установить numeric=2 |
Фразы обычно состоят только из букв. |
Не устанавливайте min_len/PLACEHOLDER_TOKEN1ZZ |
Длина фразы варьируется |
| Оставить дело как есть | Некоторые реализации нечувствительны к регистру |
Часто задаваемые вопросы
Solve Media все еще активен?
Solve Media была приобретена и переименована. Некоторые устаревшие реализации все еще существуют на старых веб-сайтах, но новые внедрения встречаются редко.
Почему Solve Media решить проще, чем reCAPTCHA?
Solve Media была разработана так, чтобы ее можно было читать — это был рекламный продукт, а не продукт безопасности. Текст был намеренно понятен, чтобы пользователи могли прочитать послание бренда.
Могу ли я решить Solve Media без OCR?
В некоторых случаях текст фразы доступен в исходном коде страницы или ответе API, что делает извлечение изображения ненужным. Проверьте скрытое поле adcopy_challenge.
Есть ли у CaptchaAI специальный метод Solve Media?
Нет. Используйте стандартный метод распознавания изображений (method=base64 или method=post) с phrase=1.
Связанные руководства
- Решение CAPTCHA изображений с помощью API
- Как работает решение CAPTCHA изображений (OCR)
- Распространенные ошибки и исправления OCR CAPTCHA