MTCaptcha Nasıl Çözülür
Yukarıdaki kutu canlı bir MTCaptcha widget'ıdır. Bu sayfa, MTCaptcha'yı çözüp doğrulanmış bir v1 token'ı almanın iki yolunu gösterir: CapSkip HTTP API'sini kendi kodunuzdan çağırarak veya araçlarınızın zaten çağırdığı captcha servisini CapSkip'e yönlendirerek. CapSkip, cihazınızda yerel olarak çalışan sınırsız bir MTCaptcha çözücüsüdür; dolayısıyla çözüm başına ücret yoktur ve hiçbir şey makinenizden dışarı çıkmaz.
Seçenek 1: MTCaptcha'yı CapSkip HTTP API'si ile çözün
Otomasyon, kazıyıcı veya bot mu geliştiriyorsunuz? Bu sayfanın MTPublic site key'ini ve URL'sini tek bir istekle CapSkip uygulamasına gönderin, sonucu yoklayın; CapSkip size gerçek bir tane gibi gönderebileceğiniz doğrulanmış bir MTCaptcha token'ı geri verir. API standart in.php / res.php uç noktalarını kullanır, bu yüzden Python, Node.js, PHP, C# veya HTTP çağrısı yapabilen başka herhangi bir dilden çalışır.
MTPublic-C8YHBQqYE
https://capskip.com/tr/captcha-demo/mtcaptcha/
Başlamadan önce
CapSkip yerel olarak çözer. İndirin ve şunu çalıştırın: CapSkip masaüstü uygulaması ve arka planda açık tutun. Kodunuz onunla şu adres üzerinden iletişim kurar: 127.0.0.1:8080, bu yüzden hiçbir bulut çağrısı ve çözüm başına ücret yoktur.
MTCaptcha'yı CapSkip'e gönderin
Bu sayfanın şu değerlerini gönderin: sitekey ve pageurl şuraya in.php ile method=mt_captcha. CapSkip hemen bir görev kimliği (task ID) ile yanıt verir.
import time
import requests
API = "http://127.0.0.1:8080" # the CapSkip app on your machine
KEY = "YOUR_API_KEY"
# 1. Submit the MTCaptcha shown on this page
task = requests.post(f"{API}/in.php", data={
"key": KEY,
"method": "mt_captcha",
"sitekey": "MTPublic-C8YHBQqYE",
"pageurl": "https://capskip.com/tr/captcha-demo/mtcaptcha/",
"json": 1,
}).json()["request"]
# 2. Poll until the token is ready
while True:
time.sleep(3)
res = requests.get(f"{API}/res.php", params={
"key": KEY, "action": "get", "id": task, "json": 1,
}).json()
if res["request"] != "CAPCHA_NOT_READY":
break
token = res["request"] # the v1(...) verified token
print(token)const API = 'http://127.0.0.1:8080'; // the CapSkip app on your machine
const KEY = 'YOUR_API_KEY';
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
(async () => {
// 1. Submit the MTCaptcha shown on this page
const submit = await fetch(`${API}/in.php`, {
method: 'POST',
body: new URLSearchParams({
key: KEY,
method: 'mt_captcha',
sitekey: 'MTPublic-C8YHBQqYE',
pageurl: 'https://capskip.com/tr/captcha-demo/mtcaptcha/',
json: '1',
}),
}).then((r) => r.json());
// 2. Poll until the token is ready
let res;
do {
await sleep(3000);
res = await fetch(`${API}/res.php?key=${KEY}&action=get&id=${submit.request}&json=1`)
.then((r) => r.json());
} while (res.request === 'CAPCHA_NOT_READY');
const token = res.request; // the v1(...) verified token
console.log(token);
})();<?php
$api = 'http://127.0.0.1:8080'; // the CapSkip app on your machine
$key = 'YOUR_API_KEY';
// 1. Submit the MTCaptcha shown on this page
$ch = curl_init("$api/in.php");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => http_build_query([
'key' => $key,
'method' => 'mt_captcha',
'sitekey' => 'MTPublic-C8YHBQqYE',
'pageurl' => 'https://capskip.com/tr/captcha-demo/mtcaptcha/',
'json' => 1,
]),
]);
$task = json_decode(curl_exec($ch), true)['request'];
// 2. Poll until the token is ready
do {
sleep(3);
$res = json_decode(file_get_contents(
"$api/res.php?key=$key&action=get&id=$task&json=1"
), true);
} while ($res['request'] === 'CAPCHA_NOT_READY');
$token = $res['request']; // the v1(...) verified token
echo $token;using System.Text.Json;
const string Api = "http://127.0.0.1:8080"; // the CapSkip app on your machine
const string Key = "YOUR_API_KEY";
var http = new HttpClient();
// 1. Submit the MTCaptcha shown on this page
var submit = await http.PostAsync($"{Api}/in.php", new FormUrlEncodedContent(new Dictionary<string, string>
{
["key"] = Key,
["method"] = "mt_captcha",
["sitekey"] = "MTPublic-C8YHBQqYE",
["pageurl"] = "https://capskip.com/tr/captcha-demo/mtcaptcha/",
["json"] = "1",
}));
string task = JsonDocument.Parse(await submit.Content.ReadAsStringAsync())
.RootElement.GetProperty("request").GetString()!;
// 2. Poll until the token is ready
string token;
do
{
await Task.Delay(3000);
var res = JsonDocument.Parse(await http.GetStringAsync(
$"{Api}/res.php?key={Key}&action=get&id={task}&json=1"));
token = res.RootElement.GetProperty("request").GetString()!;
} while (token == "CAPCHA_NOT_READY");
Console.WriteLine(token); // the v1(...) verified tokenŞununla başlayan doğrulanmış bir token alırsınız: v1(, bu site anahtarı ve bu sayfa için geçerlidir, gönderilmeye hazırdır. Token yalnızca bir kez ve yalnızca birkaç dakika çalışır; bu yüzden onu formu göndermeden hemen önce isteyin.
Token'ı kullanın
Token'ı bileşenin gizli şeyine koyun: mtcaptcha-verifiedtoken alanı. Ardından formu gönderin. Sunucunuz da token'ı MTCaptcha'nın checktoken çağrısı ve kendi özel anahtarıyla doğrular. Bu demonun doğrulamayı widget'ın kendi callback'i üzerinden yaptığını unutmayın; yani alana yerleştirdiğiniz bir token'ı değil, widget'ın ürettiği token'ı kontrol eder.
// 1. Drop the solved token into the hidden field the widget submits
document.querySelector('[name="mtcaptcha-verifiedtoken"]').value = token;
// 2. ...then submit your form.Görünmez MTCaptcha ve sayfa action'ları
Görünmez (düşük sürtünmeli) modda ziyaretçilerin çoğu hiç resim görmez; MTCaptcha resmi yalnızca bir ziyaret şüpheli göründüğünde gösterir. Aynı istek bu durumu da kapsar ve bir resim istenirse CapSkip onu da yanıtlar. Sayfanın mtcaptchaConfig nesnesi bir action'ı tanımlıyorsa, token ona bağlı olduğu için onu da işle birlikte gönderin.
POST http://127.0.0.1:8080/in.php
key=YOUR_API_KEY
method=mt_captcha
sitekey=MTPublic-SITEKEY_FROM_THE_PAGE
pageurl=https://the-protected-site.com/login
action=login
json=1
GET http://127.0.0.1:8080/res.php?key=YOUR_API_KEY&action=get&id=2122988149&json=1
{"status":1,"request":"v1(2f7e3c1a,b7c6…)"}API ayrıca şunları da kabul eder: proxy ve proxytype, bu da sürekli bir hacmi birkaç adrese yayar. JSON istemcileri aynı işi bir createTask olarak şu türle gönderebilir: MTCaptchaTask veya MtCaptchaTaskProxyless, ayrıca isInvisible ile düşük sürtünmeli widget'lar da desteklenir.
İstek parametrelerinin, yanıt alanlarının ve hata kodlarının tam listesi şurada bulunur: CapSkip API belgeleri.
Seçenek 2: Mevcut çözücü servis kodunuzu CapSkip'e gönderin
Zaten MTCaptcha'yı şöyle bir captcha başına ödeme servisi aracılığıyla mı çözüyorsunuz: 2Captcha, CapMonster Cloud veya CapSolver? Tek bir satırı bile yeniden yazmanıza gerek yok. CapSkip uygulaması bir servis emülatörü o servislerin kendi API'lerini yerel olarak konuşur: kullandığınız servisi seçin, tıklayın hosts dosyasına ekleyin, ve bot'unuzun, kazıyıcınızın veya hazır aracınızın ona zaten gönderdiği her istek, çözüm başına fatura yerine sabit bir fiyata, kendi makinenizde CapSkip tarafından yanıtlanır.
Servisinizi seçin
CapSkip uygulamasını açın ve kodunuzun zaten iletişim kurduğu servisi seçin: 2Captcha, RuCaptcha, SolveCaptcha, CapMonster Cloud, CapSolver veya DeathByCaptcha.
hosts dosyasına ekleyin
Uygulamadaki tek bir tıklama, o servisin alan adını CapSkip'e yönlendirir; böylece aracınızın yaptığı çağrılar, ücretli bir API'ye gitmek yerine kendi makinenizde yanıtlanır.
Aracınızı değiştirmeden çalıştırın
Aynı API anahtarı, aynı istek, aynı yoklama (polling) döngüsü. CapSkip, o servisin kendi formatında yanıt verir ve kodunuz doğrulanmış bir MTCaptcha token'ı geri alır.
Geçiş yaptığınızda aşağıdaki hiçbir şey değişmez. Kodunuzun bugün yaptığı çağrının aynısıdır, tek fark artık MTCaptcha'nın yerel olarak çözülmesi ve CapSkip'ten doğrulanmış bir token'ın geri gelmesidir:
POST https://2captcha.com/in.php
key=YOUR_EXISTING_API_KEY
method=mt_captcha
sitekey=MTPublic-C8YHBQqYE
pageurl=https://capskip.com/tr/captcha-demo/mtcaptcha/
GET https://2captcha.com/res.php?key=YOUR_EXISTING_API_KEY&action=get&id=2122988149
OK|v1(2f7e3c1a,b7c6…) the verified token, solved by CapSkipİstemci kütüphaneleri aynı şekilde çalışır: createTask / getTaskResult çifti ve görev türü olarak MTCaptchaTask, DeathByCaptcha tür 18 veya bu servislerden biri üzerine kurulmuş herhangi bir sarmalayıcı, emülatör açıldığında çalışmaya devam eder. Tam istek ve yanıt referansı şurada bulunur: CapSkip API belgeleri.
MTCaptcha çözme hakkında daha fazlası
İnsanların bu demoyla genellikle birlikte kullandığı araçlar ve diller için kılavuzlar.
Bu MTCaptcha demosu hakkında
Bu sayfa canlı bir MTCaptcha demosu olup burada MTCaptcha'nın nasıl çalıştığını test edebilir ve gerçek zamanlı olarak çözülmesini izleyebilirsiniz. MTCaptcha, kısmen renkli bir elipsle örtülmüş kısa bir bozuk karakter dizisi, bunları yazmak için bir kutu ve ses ile yeni resim düğmeleri gösteren gizlilik odaklı bir CAPTCHA'dır. Daha az sürtünme isteyen siteler görünmez modunu açar; bu mod ziyaretçilerin çoğunu geçirir ve resmi yalnızca şüphelendiği ziyaretçilere gösterir. Bu sayfayı şunları keşfetmek için kullanın: MTCaptcha token üretimi, mtcaptcha-verifiedtoken değeri ve web sitelerinin formları, girişleri ve kayıtları spam'den, kötüye kullanımdan ve botlardan korumak için güvendiği checktoken doğrulaması.
Geliştiriciler, test uzmanları ve otomasyon mühendisleri, entegrasyonları kontrol etmek, bir kurulumu doğrulamak ve CapSkip'in MTCaptcha'yı ne kadar hızlı çözdüğünü kıyaslamak için bu MTCaptcha test sayfasını kullanabilir. İster MTCaptcha'yı bir kez çözmeniz ister binlerce çözümü otomatikleştirmeniz gereksin, CapSkip iki şekilde çalışır: herhangi bir dilden çağırabileceğiniz sade bir HTTP API ve bugün çözüm başına ödüyor olabileceğiniz captcha servislerinin doğrudan emülasyonu; ikisi de tek bir sabit fiyatta sınırsız çözüm sunar. İkisi de aynı motorla çalışır: masaüstü yapay zekâ captcha çözücü, bir kez kurulur ve kendi makinenizde çalışır, dolayısıyla uzak bir sunucuda hiçbir şey kuyruğa alınmaz ve çözüm başına hiçbir şey faturalandırılmaz. Ayrıntılı bilgi için MTCaptcha çözücü sayfasına bakın.
