Çince web siteleri, Batı pazarlarında nadiren görülen CAPTCHA türlerini kullanır: Çince karakterli resim CAPTCHA'ları, Mandarin dilindeki aritmetik bulmacalar, GeeTest slayt doğrulamaları ve Tencent CAPTCHA gibi özel sağlayıcılar. Baidu, Taobao, devlet portalları veya akademik veritabanlarından veri topluyorsanız, bölgeye özgü bu zorlukların üstesinden gelmeniz gerekir.
Çince Web Sitelerinde Yaygın CAPTCHA Türleri
| CAPTCHA türü | Nerede kullanılır | CaptchaAI çözücü |
|---|---|---|
| Çince karakter resmi | Devlet portalları, akademik veritabanları | Image/OCR ile language=chi_sim |
| Çince Aritmetik | Kayıt formları | Resim/OCR |
| GeeTest v3 slayt bulmacası | Baidu, Bilibili, birçok büyük platform | GeeTest v3 |
| Karaktere tıklama | "Sırayla Çince karaktere tıklayın" | Image/OCR (koordinat modu) |
| reCAPTCHA v2 | Uluslararası Çin siteleri | reCAPTCHA v2 |
Python: Çince Karakterli Resim CAPTCHA
Çince resim CAPTCHA'ları 请输入验è¯ç (lütfen doğrulama kodunu girin) gibi karakterleri görüntüler ve Çince metnin OCR'sini gerektirir.
import requests
import base64
import time
API_KEY = "YOUR_API_KEY"
SUBMIT_URL = "https://ocr.captchaai.com/in.php"
RESULT_URL = "https://ocr.captchaai.com/res.php"
def solve_chinese_image_captcha(image_path: str) -> str:
"""Solve a Chinese character image CAPTCHA."""
with open(image_path, "rb") as f:
image_b64 = base64.b64encode(f.read()).decode()
resp = requests.post(SUBMIT_URL, data={
"key": API_KEY,
"method": "base64",
"body": image_b64,
"language": 2, # 2 = Chinese characters supported
"json": 1,
}, timeout=30).json()
if resp.get("status") != 1:
raise RuntimeError(f"Submit failed: {resp.get('request')}")
task_id = resp["request"]
start = time.monotonic()
while time.monotonic() - start < 120:
time.sleep(5)
poll = requests.get(RESULT_URL, params={
"key": API_KEY, "action": "get",
"id": task_id, "json": 1,
}, timeout=15).json()
if poll.get("request") == "CAPCHA_NOT_READY":
continue
if poll.get("status") == 1:
return poll["request"]
raise RuntimeError(f"Solve failed: {poll.get('request')}")
raise RuntimeError("Timeout")
def solve_chinese_captcha_from_url(captcha_url: str, cookies: dict = None) -> str:
"""Download and solve a Chinese CAPTCHA from a URL."""
session = requests.Session()
if cookies:
session.cookies.update(cookies)
resp = session.get(captcha_url, timeout=15)
image_b64 = base64.b64encode(resp.content).decode()
submit = requests.post(SUBMIT_URL, data={
"key": API_KEY,
"method": "base64",
"body": image_b64,
"language": 2,
"json": 1,
}, timeout=30).json()
if submit.get("status") != 1:
raise RuntimeError(f"Submit: {submit.get('request')}")
task_id = submit["request"]
for _ in range(24):
time.sleep(5)
poll = requests.get(RESULT_URL, params={
"key": API_KEY, "action": "get", "id": task_id, "json": 1,
}, timeout=15).json()
if poll.get("request") == "CAPCHA_NOT_READY":
continue
if poll.get("status") == 1:
return poll["request"]
raise RuntimeError(f"Solve: {poll.get('request')}")
raise RuntimeError("Timeout")
# --- GeeTest on Chinese platforms ---
def solve_geetest_chinese(gt: str, challenge: str, pageurl: str) -> dict:
"""Solve GeeTest v3 commonly found on Baidu, Bilibili, etc."""
resp = requests.post(SUBMIT_URL, data={
"key": API_KEY,
"method": "geetest",
"gt": gt,
"challenge": challenge,
"pageurl": pageurl,
"json": 1,
}, timeout=30).json()
if resp.get("status") != 1:
raise RuntimeError(f"Submit: {resp.get('request')}")
task_id = resp["request"]
for _ in range(36):
time.sleep(5)
poll = requests.get(RESULT_URL, params={
"key": API_KEY, "action": "get", "id": task_id, "json": 1,
}, timeout=15).json()
if poll.get("request") == "CAPCHA_NOT_READY":
continue
if poll.get("status") == 1:
# GeeTest returns challenge, validate, seccode
return poll["request"]
raise RuntimeError(f"Solve: {poll.get('request')}")
raise RuntimeError("Timeout")
# Usage — Chinese government portal
text = solve_chinese_image_captcha("chinese_captcha.png")
print(f"Chinese CAPTCHA text: {text}")
# GeeTest on a Chinese platform
geetest_result = solve_geetest_chinese(
gt="b46d1900d0a894591f1561f8c35670a7",
challenge="dynamic_challenge_string",
pageurl="https://www.example.cn/login",
)
JavaScript: Çince Web Sitesi CAPTCHA Akışı
const API_KEY = "YOUR_API_KEY";
const SUBMIT_URL = "https://ocr.captchaai.com/in.php";
const RESULT_URL = "https://ocr.captchaai.com/res.php";
const fs = require("fs");
async function solveChineseImageCaptcha(imagePath) {
const imageB64 = fs.readFileSync(imagePath, "base64");
const body = new URLSearchParams({
key: API_KEY,
method: "base64",
body: imageB64,
language: "2",
json: "1",
});
const resp = await (await fetch(SUBMIT_URL, { method: "POST", body })).json();
if (resp.status !== 1) throw new Error(`Submit: ${resp.request}`);
const taskId = resp.request;
for (let i = 0; i < 24; i++) {
await new Promise((r) => setTimeout(r, 5000));
const url = `${RESULT_URL}?key=${API_KEY}&action=get&id=${taskId}&json=1`;
const poll = await (await fetch(url)).json();
if (poll.request === "CAPCHA_NOT_READY") continue;
if (poll.status === 1) return poll.request;
throw new Error(`Solve: ${poll.request}`);
}
throw new Error("Timeout");
}
async function solveGeeTest(gt, challenge, pageurl) {
const body = new URLSearchParams({
key: API_KEY,
method: "geetest",
gt,
challenge,
pageurl,
json: "1",
});
const resp = await (await fetch(SUBMIT_URL, { method: "POST", body })).json();
if (resp.status !== 1) throw new Error(`Submit: ${resp.request}`);
const taskId = resp.request;
for (let i = 0; i < 36; i++) {
await new Promise((r) => setTimeout(r, 5000));
const url = `${RESULT_URL}?key=${API_KEY}&action=get&id=${taskId}&json=1`;
const poll = await (await fetch(url)).json();
if (poll.request === "CAPCHA_NOT_READY") continue;
if (poll.status === 1) return poll.request;
throw new Error(`Solve: ${poll.request}`);
}
throw new Error("Timeout");
}
// Usage
const text = await solveChineseImageCaptcha("chinese_captcha.png");
console.log(`Chinese text: ${text}`);
Çince Web Sitesini Kazımaya Yönelik İpuçları
| Mücadele | Çözüm |
|---|---|
| Karakterler yanlış işleniyor | İsteklerde ve yanıtlarda UTF-8 kodlamasını sağlayın |
| Oturum çerezleri gerekli | CAPTCHA görüntüsünü aynı oturumda getir |
| JavaScript'te GeeTest parametreleri | gt ve challenge'yi sayfa komut dosyalarından veya API çağrılarından çıkarın |
| Çin CDN'leri tarafından hız sınırlaması | Daha iyi güvenilirlik için Çin IP adreslerine sahip proxy'ler kullanın |
| CAPTCHA her yüklemede yenilenir | Resmi bir kez indirin, çözün ve gönderin; yeniden yüklemeyin |
Sorun giderme
| Sorun | Sebep | Düzeltme |
|---|---|---|
| Sonuçta bozuk Çince karakterler | Kodlama uyuşmazlığı | Yanıtın kodunun UTF-8 olarak çözüldüğünden emin olun |
GeeTest challenge'nin süresi doldu |
Mücadelenin kısa TTL'si var | Yüklemeden birkaç saniye sonra çıkartın ve gönderin |
| Resim CAPTCHA yanlış metin döndürüyor | Çince ve Latin karakterlerin karışımı | Çince karakter tanıma için language=2'yi ayarlayın |
| Çözümden sonra oturum reddedildi | Çerezler saklanmıyor | CAPTCHA alma ve form gönderme için aynı oturumu kullanın |
| Hükümet sitelerinde düşük oranı çözme | Karmaşık karakter oluşturma | Daha yüksek çözünürlüklü CAPTCHA görüntüleri doğruluğu artırır |
SSS
CaptchaAI basitleştirilmiş ve geleneksel Çinceyi destekliyor mu?
Evet. Image/OCR çözücü hem basitleştirilmiş (简体) hem de geleneksel (ç¹é«”) Çince karakterleri işler. Çince karakter tanımayı etkinleştirmek için language=2'yi ayarlayın. CaptchaAI, tüm dillerde 27.500'den fazla resim CAPTCHA türünü tanır.
Bilibili gibi Çin platformlarında GeeTest'i nasıl yönetirim?
gt parametresini (site başına statik) ve challenge parametresini (oturum başına dinamik) sayfa kaynağından veya bir API uç noktasından çıkarın. Her ikisini de CaptchaAI'nin GeeTest çözücüsüne gönderin. Yanıt, isteğinizle birlikte göndereceğiniz challenge, validate ve seccode değerlerini içerir.
Çince web siteleri için proxy gerekli mi?
Birçok Çin web sitesi IP tabanlı coğrafi kontroller gerçekleştirmektedir. Çin IP adreslerine sahip proxy'lerin kullanılması başarı oranlarını artırır. CaptchaAI'ye bir proxy aktarırken, en iyi sonuçları elde etmek için yerleşik Çin proxy'lerini kullanın.
İlgili Makaleler
- Api Kullanarak Recaptcha V2 Geri Arama Sorunu Nasıl Çözülür?
- Captcha'ları Çözme Ruby Captchaai Api
- Captcha'ları Çözme Scala Captchaai Api
Sonraki Adımlar
Çin web sitelerindeki CAPTCHA'ları çözmeye başlayın —CaptchaAI API anahtarınızı alınve herhangi bir Çince CAPTCHA türünü kullanın.
İlgili kılavuzlar: