Text Captcha
Pangkalahatang-ideya
Ang karaniwang text captcha ay isang imahe na naglalaman ng distorted na text na nababasa ng mga tao. Upang malutas ang captcha image, kailangang ilagay ng mga user ang text mula sa imahe.
Ang text captcha ay maaaring magsama ng mga numero, letra, o kumbinasyon ng pareho. Karaniwang gumagamit sila ng mga distortion ng imahe, ingay, at iba't ibang font upang gawing mahirap ang awtomatikong pagbabasa.

1. Lumikha ng Gawain
Request
POST https://api.achicaptcha.com/createTask
Mga Parameter
| Parameter | Uri ng Data | Kailangan? | Paglalarawan |
|---|---|---|---|
clientKey | string | oo | API key |
task.type | string | oo | ImageToTextTask |
task.image | string | oo | Base64 ng imahe |
task.subType | string | oo | Isa sa mga sumusunod na uri: common, amazon, microsoft, facebook, garena, artistshot, gmx, 11166, houssam |
Halimbawa ng Request
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"
}
}Response
Sa tagumpay, ibabalik ng server ang errorId = 0 at taskId
{
"errorId": 0,
"taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}2. Kunin ang Resulta
Request
POST https://api.achicaptcha.com/getTaskResult
Mga Parameter
| Parameter | Uri ng Data | Kailangan? | Paglalarawan |
|---|---|---|---|
clientKey | string | oo | API key |
taskId | string | oo | TaskId mula sa hakbang (1) |
Halimbawa ng Request
POST /getTaskResult HTTP/1.1
Host: api.achicaptcha.com
Content-Type: application/json
{
"clientKey": "Your API_KEY",
"taskId": "f2fc70d6-c76b-4fba-9480-205ac1fe9fb9"
}Response
{
"errorId": 0,
"status": "ready",
"solution": "swamn"
}Paliwanag sa Status
errorId = 0atstatus = ready: Matagumpay na nalutas, basahin ang resulta sasolution.texterrorId = 0atstatus = processing: Ang captcha ay nilulutas, maghintay ng 2 segundo at subukang mulierrorId > 0: Error sa system, ibinigay ang error code at paglalarawan
Mga Opsyon sa SubType
Sinusuportahan ng Achicaptcha ang iba't ibang uri ng text captcha sa pamamagitan ng parameter na subType:
| SubType | Paglalarawan |
|---|---|
common | Karaniwang text captcha, pinakasikat |
amazon | Captcha na partikular sa Amazon na may espesyal na distortion |
microsoft | Captcha na ginagamit sa mga serbisyo ng Microsoft |
facebook | Captcha ng Facebook na may natatanging mga font |
garena | Captcha sa platform ng Garena |
artistshot | Captcha mula sa website ng Artistshot |
gmx | Captcha ng email ng GMX |
11166 | Espesyal na uri ng captcha na may code na 11166 |
houssam | Partikular na uri ng captcha na pinangalanang Houssam |
discord | Captcha na partikular sa Discord |
okvip | Captcha na partikular sa OKVIP |
shopee | Captcha na partikular sa Shopee |
Karaniwan ang subType: common ay kayang hawakan ang lahat ng uri ng text captcha. Kung ang text captcha ng iyong website ay masyadong partikular, mangyaring makipag-ugnayan sa admin (opens in a new tab) para sa suporta.
Mga Halimbawa ng Integrasyon
import requests
import time
import base64
def solve_captcha(image_path, sub_type='common', api_key='YOUR_API_KEY'):
# Basahin at i-encode ang imahe
with open(image_path, 'rb') as image_file:
image_base64 = base64.b64encode(image_file.read()).decode('utf-8')
# Hakbang 1: Lumikha ng gawain
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']
# Hakbang 2: Kunin ang resulta
get_result_url = 'https://api.achicaptcha.com/getTaskResult'
while True:
time.sleep(2) # Maghintay ng 2 segundo
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']
# Kung status == 'processing', ipagpatuloy ang loop
# Paggamit
solution = solve_captcha('captcha.png', 'common', 'YOUR_API_KEY')
print('Captcha result:', solution)Karaniwang Error Codes
| Error Code | Paglalarawan | Mga Tala |
|---|---|---|
| 0 | success | Tagumpay |
| 1 | processing | Pinoproseso |
| 2 | missing required fields | Kulang ang mga kinakailangang field, suriin ang mga parameter |
| 3 | task not supported | Hindi suportado ang uri ng gawain |
| 4 | task creation failed | Nabigo ang paglikha ng gawain |
| 5 | client key does not exist | Hindi umiiral ang API key, suriin ang iyong API key |
| 6 | insufficient account balance | Hindi sapat ang balanse ng account, magdagdag ng credits |
| 7 | task failed, please create a new task | Nabigo ang gawain, mangyaring lumikha ng bagong gawain |
| 8 | task ID does not exist | Hindi umiiral ang Task ID |
Pinakamahuhusay na Kasanayan
Upang makamit ang pinakamahusay na mga resulta kapag gumagamit ng Achicaptcha API, sundin ang mga prinsipyong ito:
1. Kalidad ng Imahe
- Gumamit ng mga imahe na may magandang resolusyon
- Tiyaking hindi masyadong malabo o maingay ang mga imahe
- Piliin ang naaangkop na
subTypepara sa iyong uri ng captcha
2. Interval ng Polling
- Maghintay ng hindi bababa sa 2 segundo sa pagitan ng mga pagsusuri ng resulta
- Huwag i-spam ang API ng masyadong maraming magkakasunod na kahilingan
- Magkaroon ng timeout upang maiwasan ang mga infinite loop
3. Logic ng Pag-retry
- Ipatupad ang retry para sa mga pansamantalang error tulad ng
ERROR_NO_SLOT_AVAILABLE - Gumamit ng exponential backoff kapag nagre-retry
- Limitahan ang maximum na mga pagsubok sa pag-retry
4. Seguridad ng API Key
- Huwag i-hardcode ang API key sa code
- Gumamit ng mga environment variable
- Huwag ilantad ang API key sa client-side
Mga Kapaki-pakinabang na Link: