Bắt Đầu

Di chuyển từ CapMonster Cloud sang CaptchaAI

CaptchaAI sử dụng định dạng API tương thích giúp việc chuyển đổi từ CapMonster Cloud trở nên đơn giản. Hầu hết các quá trình di chuyển chỉ yêu cầu thay đổi URL cơ sở và khóa API. Hướng dẫn này bao gồm các bước chính xác.


Những thay đổi gì

thành phần CapQuái Vật Đám Mây CaptchaAI
Gửi URL https://api.capmonster.cloud/createTask https://ocr.captchaai.com/in.php
URL kết quả https://api.capmonster.cloud/getTaskResult https://ocr.captchaai.com/res.php
Thông số khóa API clientKey key
định dạng API Nội dung JSON Được mã hóa biểu mẫu (hoặc JSON)
Trường ID nhiệm vụ taskId request (đáp lại)
Trường kết quả Đối tượng solution request (chuỗi mã thông báo)

Di chuyển nhanh: Thay đổi hai dòng

Nếu mã của bạn sử dụng trình bao bọc hoặc SDK thì đường dẫn nhanh nhất là thay thế URL và khóa cơ sở:

# Before (CapMonster Cloud)
API_URL = "https://api.capmonster.cloud"
CLIENT_KEY = "your_capmonster_key"

# After (CaptchaAI)
SUBMIT_URL = "https://ocr.captchaai.com/in.php"
RESULT_URL = "https://ocr.captchaai.com/res.php"
API_KEY = "your_captchaai_key"

Di chuyển đầy đủ: reCAPTCHA v2

Đám mây CapMonster (trước đây)

import requests
import time

resp = requests.post("https://api.capmonster.cloud/createTask", json={
    "clientKey": "CAPMONSTER_KEY",
    "task": {
        "type": "RecaptchaV2TaskProxyless",
        "websiteURL": "https://example.com",
        "websiteKey": "6Le-SITEKEY",
    }
}).json()
task_id = resp["taskId"]

while True:
    time.sleep(5)
    result = requests.post("https://api.capmonster.cloud/getTaskResult", json={
        "clientKey": "CAPMONSTER_KEY",
        "taskId": task_id,
    }).json()
    if result["status"] == "ready":
        token = result["solution"]["gRecaptchaResponse"]
        break

CaptchaAI (sau)

import requests
import time

resp = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": "6Le-SITEKEY",
    "pageurl": "https://example.com",
    "json": "1",
}).json()
task_id = resp["request"]

while True:
    time.sleep(5)
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": "YOUR_API_KEY",
        "action": "get",
        "id": task_id,
        "json": "1",
    }).json()
    if result["status"] == 1:
        token = result["request"]
        break
    if result["request"] != "CAPCHA_NOT_READY":
        raise Exception(result["request"])

Ánh xạ tham số

reCAPTCHA v2

CapQuái Vật Đám Mây CaptchaAI
task.type: "RecaptchaV2TaskProxyless" method: "userrecaptcha"
task.websiteKey googlekey
task.websiteURL pageurl
task.isInvisible: true invisible: "1"

Cloudflare Turnstile

CapQuái Vật Đám Mây CaptchaAI
task.type: "TurnstileTaskProxyless" method: "turnstile"
task.websiteKey sitekey
task.websiteURL pageurl

CAPTCHA hình ảnh

CapQuái Vật Đám Mây CaptchaAI
task.type: "ImageToTextTask" method: "base64"
task.body body

Di chuyển JavaScript

Đám mây CapMonster (trước đây)

const axios = require('axios');

const resp = await axios.post('https://api.capmonster.cloud/createTask', {
  clientKey: 'CAPMONSTER_KEY',
  task: {
    type: 'RecaptchaV2TaskProxyless',
    websiteURL: 'https://example.com',
    websiteKey: '6Le-SITEKEY',
  }
});
const taskId = resp.data.taskId;

CaptchaAI (sau)

const axios = require('axios');

const resp = await axios.post('https://ocr.captchaai.com/in.php', null, {
  params: {
    key: 'YOUR_API_KEY',
    method: 'userrecaptcha',
    googlekey: '6Le-SITEKEY',
    pageurl: 'https://example.com',
    json: 1,
  }
});
const taskId = resp.data.request;

Ánh xạ mã lỗi

CapQuái Vật Đám Mây CaptchaAI tương đương
ERROR_KEY_DOES_NOT_EXIST ERROR_KEY_DOES_NOT_EXIST
ERROR_ZERO_BALANCE ERROR_ZERO_BALANCE
ERROR_RECAPTCHA_TIMEOUT ERROR_CAPTCHA_UNSOLVABLE
ERROR_NO_SLOT_AVAILABLE ERROR_NO_SLOT_AVAILABLE
CAPTCHA_NOT_READY CAPCHA_NOT_READY

Lưu ý sự khác biệt về chính tả: CaptchaAI sử dụng CAPCHA_NOT_READY (không có chữ T).


Kiểm tra số dư

CapQuái Vật Đám Mây

resp = requests.post("https://api.capmonster.cloud/getBalance", json={
    "clientKey": "CAPMONSTER_KEY"
}).json()
balance = resp["balance"]

CaptchaAI

resp = requests.get("https://ocr.captchaai.com/res.php", params={
    "key": "YOUR_API_KEY",
    "action": "getbalance",
    "json": "1",
}).json()
balance = float(resp["request"])

Danh sách kiểm tra di chuyển

  • [ ] Nhận khóa API CaptchaAI từcaptchaai.com
  • [ ] Thay thế URL gửi: api.capmonster.cloud/createTaskocr.captchaai.com/in.php
  • [ ] Thay thế URL kết quả: api.capmonster.cloud/getTaskResultocr.captchaai.com/res.php
  • [ ] Thay đổi xác thực: clientKeykey
  • [] Thay đổi định dạng yêu cầu: Đối tượng tác vụ JSON → tham số được mã hóa biểu mẫu
  • [ ] Cập nhật phân tích cú pháp phản hồi: taskIdrequest, solution.gRecaptchaResponserequest
  • [ ] Xử lý lỗi cập nhật: CAPTCHA_NOT_READYCAPCHA_NOT_READY
  • [ ] Kiểm tra bằng một giải pháp duy nhất trước khi chuyển đổi lưu lượng sản xuất

Câu hỏi thường gặp

CaptchaAI có phải là giải pháp thay thế tạm thời cho CapMonster Cloud không?

Định dạng API khác nhau (mã hóa biểu mẫu so với JSON), nhưng các khái niệm đều giống nhau. Quá trình di chuyển thường mất 15-30 phút.

Tôi có thể chạy đồng thời cả hai dịch vụ trong quá trình di chuyển không?

Vâng. Định tuyến phần trăm lưu lượng truy cập đến CaptchaAI trong khi vẫn giữ CapMonster Cloud làm dự phòng, sau đó chuyển hoàn toàn sau khi bạn xác thực kết quả.


Chuyển sang CaptchaAI và bắt đầu giải trong vài phút

Nhận khóa API của bạn tạicaptchaai.com.


Hướng dẫn liên quan

Os comentários estão desativados para este artigo.