Documentation Index
Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
Use this file to discover all available pages before exploring further.
本文將介紹一種 Recaptcha2 圖像識別2 API 對接說明,它可以通過用戶輸入識別的內容和 Recaptcha2 驗證碼圖像,最後返回需要點擊的小圖像的坐標,完成驗證。
申請流程
要使用 API,需要先到 Recaptcha2 圖像識別 API 對應頁面申請對應的服務,進入頁面之後,點擊「Acquire」按鈕,如圖所示:
如果你尚未登錄或註冊,會自動跳轉到登錄頁面邀請您來註冊和登錄,登錄註冊之後會自動返回當前頁面。
在首次申請時會有免費額度贈送,可以免費使用該 API。
基本使用
首先先了解下基本的使用方式,我們需要從網站中截取到 Recaptcha2 驗證碼圖像,此處示例網站的 URL:https://www.google.com/recaptcha/api2/demo,具體的頁面如下圖所示:

我們需要點擊驗證碼的複選框才會出現驗證碼圖像,在上圖中黃色箭頭指向的有一段文字內容,這個內容便是下文的 question 的值。首先需要簡單地傳遞一個 image 字段,這個就是具體 Recaptcha2 驗證碼圖像,這個圖像是上圖中紅色箭頭指向的圖像,同時必須將圖片縮放至標準大小 (100x100, 300x300, 450x450),這樣服務才能判斷圖片類型,圖片的壓縮需要您自行壓縮,本文推薦一個壓縮網站,您可以在此網站中對圖像進行尺寸和大小的壓縮,壓縮後的結果如圖所示:
同時還需要輸入跟驗證碼圖像相關的識別內容參數 question,我們只提供了下面這個內容表,可以作為參考下面:
中文內容表
{
"/m/0pg52": "出租車",
"/m/01bjv": "巴士",
"/m/02yvhj": "校車",
"/m/04_sv": "摩托車",
"/m/013xlm": "拖拉機",
"/m/01jk_4": "煙囪",
"/m/014xcs": "人行橫道",
"/m/015qff": "紅綠燈",
"/m/0199g": "自行車",
"/m/015qbp": "停車計價表",
"/m/0k4j": "汽車",
"/m/015kr": "橋",
"/m/019jd": "船",
"/m/0cdl1": "棕櫚樹",
"/m/09d_r": "山",
"/m/01pns0": "消防栓",
"/m/01lynh": "樓梯"
}
英文內容表
{
"/m/0pg52": "taxis",
"/m/01bjv": "bus",
"/m/02yvhj": "school bus",
"/m/04_sv": "motorcycles",
"/m/013xlm": "tractors",
"/m/01jk_4": "chimneys",
"/m/014xcs": "crosswalks", // pedestrian crossings 也是一樣的
"/m/015qff": "traffic lights",
"/m/0199g": "bicycles",
"/m/015qbp": "parking meters",
"/m/0k4j": "cars",
"/m/015kr": "bridges",
"/m/019jd": "boats",
"/m/0cdl1": "palm trees",
"/m/09d_r": "mountains or hills",
"/m/01pns0": "fire hydrant",
"/m/01lynh": "stairs"
}
由上文可知將參數 question 設置為消防栓對應的 /m/01pns0,具體的內容如下:

可以看到這裡我們設置了 Request Headers,包括:
accept:想要接收怎樣格式的響應結果,這裡填寫為 application/json,即 JSON 格式。
authorization:調用 API 的密鑰,申請之後可以直接下拉選擇。
另外設置了 Request Body,包括:
image:Base64編碼的驗證碼圖像。
question:問題 ID, 請查表, 以 /m/ 開頭。
選擇之後,可以發現右側也生成了對應代碼,如圖所示:

點擊「Try」按鈕即可進行測試,如上圖所示,這裡我們就得到了如下結果:
{
"solution": {
"size": 300,
"label": "/m/01pns0",
"confidences": [
0,
0.0007,
1,
0.0003,
0.0046,
1,
0,
1,
0
],
"objects": [
2,
5,
7
],
"type": "multi"
}
}
返回結果一共有多個字段,介紹如下:
solution,此次 Recaptcha2 驗證碼圖像任務處理後驗證結果。
size,Recaptcha2 驗證碼圖像的尺寸大小。
label,Recaptcha2 驗證碼圖像所識別的內容。
confidences,Recaptcha2 驗證碼圖像識別區域的置信度,區域是從0開始的。
objects,Recaptcha2 驗證碼圖像識別後滿足識別內容的區域,區域從0開始。
type,此次 Recaptcha2 驗證碼圖像任務的類型,多個區域時為 multi。
可以看到我們得到了處理 Recaptcha2 驗證碼圖像的驗證結果,我們首先對驗證碼圖像進行劃分區域,如下圖所示:

可以看到區域都是從0開始的,從結果中 objects中我們得到了2,5,7,我們只需要對該驗證碼模擬點擊該三個區域便可通過驗證。
另外如果想生成對應的對接代碼,可以直接複製生成,例如 CURL 的代碼如下:
curl -X POST 'https://api.xhuoapi.ai/v1/captcha/recognition/recaptcha2' \
-H 'accept: application/json' \
-H 'authorization: Bearer {token}' \
-H 'content-type: application/json' \
-d '{
"question": "/m/01pns0",
"image": "iVBORw0KGgoAAAANSUhEUgAAASoAAAEsCAIAAAD7AWllAAAAAX..."
}'
Python 的對接代碼如下:
import requests
url = "https://api.xhuoapi.ai/v1/captcha/recognition/recaptcha2"
headers = {
"accept": "application/json",
"authorization": "Bearer {token}",
"content-type": "application/json"
}
payload = {
"question": "/m/01pns0",
"image": "iVBORw0KGgoAAAANSUhEUgAAASoAAAEsCAIAAAD7AWllAAAAAX..."
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
錯誤處理
在調用 API 時,如果遇到錯誤,API 會返回相應的錯誤代碼和信息。例如:
400 token_mismatched:錯誤的請求,可能是由於缺少或無效的參數。
400 api_not_implemented:錯誤的請求,可能是由於缺少或無效的參數。
401 invalid_token:未授權,無效或缺少授權令牌。
429 too_many_requests:請求過多,您已超過速率限制。
500 api_error:內部伺服器錯誤,伺服器出現問題。
錯誤響應示例
{
"success": false,
"error": {
"code": "api_error",
"message": "fetch failed"
},
"trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
通過本文檔,您已經了解了如何使用 Recaptcha2 圖像識別 API 讓用戶輸入識別的內容和 Recaptcha2 驗證碼圖像,最後返回需要點擊的小圖像的坐標,完成驗證。希望本文檔能幫助您更好地對接和使用該 API。如有任何問題,請隨時聯繫我們的技術支持團隊。