Text Captcha
ภาพรวม
Text captcha มาตรฐานคือรูปภาพที่มีข้อความบิดเบี้ยวซึ่งมนุษย์สามารถอ่านได้ ในการแก้รูปภาพแคปช่า ผู้ใช้ต้องป้อนข้อความจากรูปภาพ
Text captcha อาจรวมถึงตัวเลข ตัวอักษร หรือทั้งสองอย่างรวมกัน โดยทั่วไปจะใช้การบิดเบือนรูปภาพ สัญญาณรบกวน และแบบอักษรต่างๆ เพื่อให้การอ่านอัตโนมัติทำได้ยาก

1. สร้างงาน
คำขอ
POST https://api.achicaptcha.com/createTask
พารามิเตอร์
| พารามิเตอร์ | ชนิดข้อมูล | จำเป็น? | คำอธิบาย |
|---|---|---|---|
clientKey | string | ใช่ | คีย์ API |
task.type | string | ใช่ | ImageToTextTask |
task.image | string | ใช่ | Base64 ของรูปภาพ |
task.subType | string | ใช่ | หนึ่งในประเภทต่อไปนี้: common, amazon, microsoft, facebook, garena, artistshot, gmx, 11166, houssam |
ตัวอย่างคำขอ
POST /createTask HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "Your API_KEY",
"task": {
"type": "ImageToTextTask",
"image": "base64 encoded image",
"subType": "gmx"
}
}การตอบกลับ
เมื่อสำเร็จ เซิร์ฟเวอร์จะส่งคืน errorId = 0 และ taskId
{
"errorId": 0,
"taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}2. รับผลลัพธ์
คำขอ
POST https://api.achicaptcha.com/getTaskResult
พารามิเตอร์
| พารามิเตอร์ | ชนิดข้อมูล | จำเป็น? | คำอธิบาย |
|---|---|---|---|
clientKey | string | ใช่ | คีย์ API |
taskId | string | ใช่ | TaskId จากขั้นตอน (1) |
ตัวอย่างคำขอ
POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "Your API_KEY",
"taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}การตอบกลับ
{
"errorId": 0,
"status": "ready",
"solution": "swamn"
}คำอธิบายสถานะ
errorId = 0และstatus = ready: แก้ไขสำเร็จ อ่านผลลัพธ์ในsolution.texterrorId = 0และstatus = processing: กำลังแก้แคปช่า รอ 2 วินาทีแล้วลองอีกครั้งerrorId > 0: ข้อผิดพลาดของระบบ ระบุรหัสข้อผิดพลาดและคำอธิบาย
ตัวเลือก SubType
Achicaptcha รองรับ text captcha หลายประเภทผ่านพารามิเตอร์ subType:
| SubType | คำอธิบาย |
|---|---|
common | Text captcha ทั่วไป ยอดนิยมที่สุด |
amazon | แคปช่าเฉพาะของ Amazon ที่มีการบิดเบือนพิเศษ |
microsoft | แคปช่าที่ใช้ในบริการของ Microsoft |
facebook | แคปช่า Facebook ที่มีแบบอักษรเฉพาะตัว |
garena | แคปช่าบนแพลตฟอร์ม Garena |
artistshot | แคปช่าจากเว็บไซต์ Artistshot |
gmx | แคปช่าอีเมล GMX |
11166 | ประเภทแคปช่าพิเศษที่มีรหัส 11166 |
houssam | ประเภทแคปช่าเฉพาะชื่อ Houssam |
discord | ประเภทแคปช่าเฉพาะของ Discord |
okvip | ประเภทแคปช่าเฉพาะของ OKVIP |
shopee | ประเภทแคปช่าเฉพาะของ Shopee |
โดยทั่วไป subType: common สามารถจัดการ text captcha ได้ทุกประเภท หาก text captcha ของเว็บไซต์ของคุณมีความเฉพาะเจาะจงเกินไป โปรดติดต่อ admin (opens in a new tab) เพื่อขอความช่วยเหลือ
ตัวอย่างการรวมระบบ
import requests
import time
import base64
def solve_captcha(image_path, sub_type='common', api_key='YOUR_API_KEY'):
# Read and encode image
with open(image_path, 'rb') as image_file:
image_base64 = base64.b64encode(image_file.read()).decode('utf-8')
# Step 1: Create task
create_task_url = 'https://api.achicaptcha.com/createTask'
create_task_payload = {
'clientKey': api_key,
'task': {
'type': 'ImageToTextTask',
'image': image_base64,
'subType': sub_type
}
}
response = requests.post(create_task_url, json=create_task_payload)
result = response.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
task_id = result['taskId']
# Step 2: Get result
get_result_url = 'https://api.achicaptcha.com/getTaskResult'
while True:
time.sleep(2) # Wait 2 seconds
get_result_payload = {
'clientKey': api_key,
'taskId': task_id
}
response = requests.post(get_result_url, json=get_result_payload)
result = response.json()
if result['errorId'] != 0:
raise Exception(result['errorDescription'])
if result['status'] == 'ready':
return result['solution']
# If status == 'processing', continue loop
# Usage
solution = solve_captcha('captcha.png', 'common', 'YOUR_API_KEY')
print('Captcha result:', solution)รหัสข้อผิดพลาดทั่วไป
| รหัสข้อผิดพลาด | คำอธิบาย | หมายเหตุ |
|---|---|---|
| 0 | success | สำเร็จ |
| 1 | processing | กำลังประมวลผล |
| 2 | missing required fields | ขาดฟิลด์ที่จำเป็น ตรวจสอบพารามิเตอร์ |
| 3 | task not supported | ไม่รองรับประเภทงาน |
| 4 | task creation failed | การสร้างงานล้มเหลว |
| 5 | client key does not exist | ไม่มีคีย์ API ตรวจสอบคีย์ API ของคุณ |
| 6 | insufficient account balance | ยอดเงินในบัญชีไม่เพียงพอ เติมเครดิต |
| 7 | task failed, please create a new task | งานล้มเหลว โปรดสร้างงานใหม่ |
| 8 | task ID does not exist | ไม่มี ID งาน |
แนวทางปฏิบัติที่ดีที่สุด
เพื่อให้ได้ผลลัพธ์ที่ดีที่สุดเมื่อใช้ Achicaptcha API ให้ปฏิบัติตามหลักการเหล่านี้:
1. คุณภาพของรูปภาพ
- ใช้รูปภาพที่มีความละเอียดดี
- ตรวจสอบให้แน่ใจว่ารูปภาพไม่เบลอหรือมีสัญญาณรบกวนมากเกินไป
- เลือก
subTypeที่เหมาะสมสำหรับประเภทแคปช่าของคุณ
2. ช่วงเวลาการตรวจสอบ
- รออย่างน้อย 2 วินาทีระหว่างการตรวจสอบผลลัพธ์
- อย่าสแปม API ด้วยคำขอที่ต่อเนื่องกันมากเกินไป
- ตั้งค่าการหมดเวลาเพื่อหลีกเลี่ยงลูปไม่สิ้นสุด
3. ตรรกะการลองใหม่
- ใช้การลองใหม่สำหรับข้อผิดพลาดชั่วคราว เช่น
ERROR_NO_SLOT_AVAILABLE - ใช้ exponential backoff เมื่อลองใหม่
- จำกัดจำนวนการลองใหม่สูงสุด
4. ความปลอดภัยของคีย์ API
- อย่าฮาร์ดโค้ดคีย์ API ในโค้ด
- ใช้ตัวแปรสภาพแวดล้อม
- อย่าเปิดเผยคีย์ API ทางฝั่งไคลเอนต์
ลิงก์ที่มีประโยชน์: