
Anh Tuan
Data Science Expert
Đã xuất bản Oct 13, 2026
Đã cập nhật Oct 13, 2026 · đọc tối thiểu

ImageToTextTask của CapSolver khi CAPTCHA yêu cầu bạn đọc các ký tự từ hình ảnh.ImageToTextTask trả về kết quả nhận dạng trực tiếp; nó không cần vòng lặp kiểm tra kết quả riêng biệt.Một đoạn mã Python có thể truy cập biểu mẫu được phép và dừng lại tại một hình ảnh nhỏ chứa các ký tự hoặc số bị biến dạng. Bước tiếp theo là dễ dàng: chụp hình ảnh hiện tại, yêu cầu một công cụ giải CAPTCHA hình ảnh nhận dạng các ký tự của nó, và gửi văn bản được trả về vào biểu mẫu tương ứng.
CapSolver cung cấp ImageToTextTask cho bước nhận dạng này. Hướng dẫn này sử dụng ví dụ SDK Python chính thức của nó và giải thích cách chuẩn bị đầu vào, đọc kết quả và chẩn đoán các lỗi thường gặp xung quanh cuộc gọi. Sử dụng quy trình này trên các biểu mẫu bạn sở hữu hoặc được phép tự động hóa; phản hồi nhận dạng không thay đổi quy tắc truy cập của đích.
ImageToTextTask nhận dạng văn bản trong hình ảnh và trả về các ký tự mà ứng dụng Python của bạn có thể sử dụng.
Đây là một nhiệm vụ nhận dạng ký tự quang học. Đầu vào là một hình ảnh; đầu ra hữu ích là văn bản được hiển thị trong hình ảnh đó. Nó phù hợp với một biểu mẫu yêu cầu bạn nhập các ký tự hiển thị vào trường trả lời.
Một hộp kiểm reCAPTCHA hoặc widget Turnstile là một tích hợp khác. Không gửi ảnh chụp màn hình của toàn bộ widget đến ImageToTextTask và kỳ vọng một mã xác minh trình duyệt. Sử dụng nhiệm vụ được tài liệu hóa phù hợp khi ứng dụng cần một mã thay vì văn bản được nhận dạng.
Bắt đầu bằng cách kiểm tra xem biểu mẫu yêu cầu gì. Nếu nó hiển thị một hình ảnh ký tự bên cạnh trường văn bản, nhận dạng hình ảnh có thể phù hợp. Nếu nó yêu cầu tương tác lưới, kiểm tra ẩn hoặc định dạng thách thức khác, hãy xác định định dạng đó trước khi chọn API.
Bạn cần một hình ảnh CAPTCHA hiện tại, Python, gói CapSolver và khóa tài khoản CapSolver với quyền truy cập vào dịch vụ cần thiết.
Lưu hình ảnh từ thử nghiệm hoặc ứng dụng được phê duyệt của bạn dưới tên captcha.png. Giữ toàn bộ khu vực ký tự hiển thị. Không bao gồm văn bản trang không liên quan, điều khiển trình duyệt hoặc CAPTCHA khác cùng với nó. Mục tiêu là gửi hình ảnh mà người dùng sẽ đọc cho lần thử nghiệm biểu mẫu đó.
Cài đặt gói chính thức trong môi trường Python của bạn:
python -m pip install capsolver==1.0.7
Điều này gán phiên bản SDK được sử dụng cho các kiểm tra gói đằng sau hướng dẫn này. Hướng dẫn cài đặt gói của Python giải thích tại sao môi trường cô lập hữu ích khi các dự án khác nhau cần các phụ thuộc khác nhau.
Cuộc gọi SDK trực tiếp sau này trong hướng dẫn này yêu cầu khóa tài khoản thực tế và chuỗi Base64 hoàn chỉnh của hình ảnh. Những đầu vào này là bắt buộc, không phải giá trị có thể được thay thế bằng các đại diện ngắn gọn trong tài liệu. Ví dụ được lấy từ tài liệu chính thức của CapSolver; kết quả nhận dạng trực tiếp không được minh họa ở đây.
Giữ khóa tài khoản ra khỏi các hình chụp màn hình chia sẻ, kho lưu trữ mã nguồn và vé hỗ trợ. Trang site công khai của trang, khi có một loại CAPTCHA khác, không phải là thay thế cho khóa tài khoản CapSolver.
Chuyển nội dung nhị phân của tệp thành chuỗi Base64 thuần túy trước khi đặt chúng vào trường body của nhiệm vụ.
Lưu đoạn mã chuẩn bị sau đây dưới tên prepare_image.py trong cùng thư mục với captcha.png:
from pathlib import Path
import base64
image_bytes = Path("captcha.png").read_bytes()
image_base64 = base64.b64encode(image_bytes).decode("ascii")
Path("captcha-base64.txt").write_text(image_base64, encoding="ascii")
print("Đã lưu hình ảnh Base64 vào captcha-base64.txt")
Chạy nó với python prepare_image.py. Tệp văn bản chứa giá trị hoàn chỉnh để sử dụng cho body trong bước tiếp theo.
Đoạn mã sử dụng đọc tệp nhị phân và mã hóa Base64 được tài liệu hóa của Python. Nó chuẩn bị đầu vào cục bộ; nó không gọi CapSolver hoặc nhận dạng các ký tự.
Mở hình ảnh nguồn trước khi tiếp tục. Một tệp có tên captcha.png vẫn có thể chứa dữ liệu sai nếu một tải xuống trước đó lưu trang lỗi HTML. Xác nhận rằng nó hiển thị hình ảnh mong muốn và tệp văn bản được tạo từ tệp đó.
Không gửi đường dẫn cục bộ như captcha.png làm nội dung nhiệm vụ. Không mã hóa URL hình ảnh thành văn bản. API cần các byte hình ảnh thực tế được biểu diễn dưới dạng Base64.
Gọi capsolver.solve với nhiệm vụ ImageToText được tài liệu hóa sau khi thay thế các đại diện ngắn gọn cần thiết.
Ví dụ SDK sau đây được lấy từ tài liệu ImageToTextTask chính thức. Lưu nó dưới tên solve_image.py. Thay ... bằng khóa tài khoản của bạn và thay thế chuỗi body được rút gọn hoàn toàn bằng nội dung của captcha-base64.txt trước khi chạy python solve_image.py.
import capsolver
capsolver.api_key = "..."
solution = capsolver.solve({
"type": "ImageToTextTask",
"module": "common",
"body": "/9j/4AAQSkZJRgABA......"
})
print(solution)
Các chuỗi khóa và hình ảnh được hiển thị là đại diện tài liệu. Chạy chúng mà không thay đổi không thể tạo ra kết quả nhận dạng hữu ích. Bước chuẩn bị riêng biệt ở trên cung cấp giá trị hình ảnh thực tế; khóa của bạn cung cấp quyền truy cập.
Các trường nhiệm vụ có mục đích nhỏ, cụ thể:
| Trường | Những gì cung cấp |
|---|---|
type |
ImageToTextTask |
module |
common cho ví dụ chung được hiển thị ở đây |
body |
Nội dung hình ảnh được mã hóa Base64 hoàn chỉnh |
websiteURL |
URL trang nguồn tùy chọn, như được tài liệu hóa cho nhiệm vụ này |
Tài liệu chính thức cũng mô tả một module number cho hình ảnh số. Chọn nó chỉ khi hình ảnh chứa số và chế độ được tài liệu hóa phù hợp với trường hợp của bạn. Không đoán tên module bổ sung hoặc sao chép module từ nhiệm vụ nhận dạng không liên quan.
Nếu bạn thích tích hợp HTTP sau này, nhiệm vụ nhận dạng tương tự được gửi qua createTask. SDK Python là cách thuận tiện để thực hiện cuộc gọi này mà không cần viết xử lý yêu cầu HTTP riêng.
Nhận Thưởng Mã Khuyến Mại CapSolver
Tăng ngân sách tự động hóa của bạn ngay lập tức!
Sử dụng mã khuyến mãi CAP26 khi nạp tiền vào tài khoản CapSolver để nhận thêm 5% khuyến mãi cho mỗi lần nạp tiền — không giới hạn.
Nhận mã khuyến mãi ngay trong Bảng điều khiển CapSolver
ImageToTextTask trả về đầu ra nhận dạng trực tiếp thay vì yêu cầu vòng lặp getTaskResult riêng biệt.
Tài liệu phản hồi HTTP đặt các ký tự được nhận dạng dưới solution.text. Ví dụ SDK trả về đối tượng giải pháp; hướng dẫn CAPTCHA hình ảnh Python đọc văn bản của nó bằng solution.get("text").
Kiểm tra phản hồi thực tế trước khi sử dụng nó. Một kết quả thành công nên chứa các ký tự được nhận dạng cho hình ảnh bạn đã gửi. Một lỗi, kết quả thiếu hoặc giá trị trống không phải là câu trả lời để nhập vào biểu mẫu.
Không thêm vòng lặp kiểm tra chung được sao chép từ hướng dẫn lấy token reCAPTCHA. Những nhiệm vụ này có thể có hành vi phản hồi khác. Việc kiểm tra bổ sung không cải thiện kết quả hình ảnh đã được trả về trực tiếp.
Cũng phân biệt giữa nhận dạng và gửi biểu mẫu. In ra giải pháp xác nhận rằng đoạn mã của bạn đã nhận được kết quả từ bước giải. Ứng dụng xung quanh vẫn cần nhập văn bản đó vào trường phù hợp và kiểm tra phản hồi của biểu mẫu.
Chỉ sử dụng văn bản được nhận dạng cho lần thử nghiệm biểu mẫu cung cấp hình ảnh đó.
Giả sử biểu mẫu được phê duyệt hiển thị hình ảnh A. Đoạn mã của bạn chụp A, gửi nó đến CapSolver và nhận được câu trả lời. Nếu trang đã được làm mới thành hình ảnh B trong khi yêu cầu đang xử lý, câu trả lời cho A không còn là đầu vào đáng tin cậy cho biểu mẫu hiện tại.
Giữ rõ mối liên hệ giữa trang và hình ảnh. Hoàn thành lần thử nghiệm hiện tại trước khi yêu cầu thách thức mới một cách có chủ đích. Nếu có làm mới, chụp hình ảnh thay thế và coi nó là lần thử nghiệm mới thay vì gửi lại câu trả lời trước đó.
Bảo tồn các ký tự được trả về bởi người giải. Không tự động chuyển đổi chữ cái thành chữ thường, xóa số 0 ở đầu hoặc chuyển đổi câu trả lời thành số trừ khi biểu mẫu đích yêu cầu rõ ràng điều đó. Giá trị văn bản và giá trị số có thể đại diện cho đầu vào khác nhau.
Sau khi gửi, kiểm tra kết quả mong đợi. Đối với biểu mẫu được sở hữu, đó có thể là bảng kết quả được yêu cầu. Đối với bài kiểm tra QA, đó có thể là trạng thái thành công cụ thể của ứng dụng. Việc CAPTCHA biến mất là bằng chứng hữu ích, nhưng không phải là kết quả kinh doanh đầy đủ.
Sửa chữa nhanh nhất đến từ việc kiểm tra hình ảnh, yêu cầu và biểu mẫu theo thứ tự đó.
Kiểm tra xem body có chứa byte hình ảnh được mã hóa Base64 hay không. Xóa tiền tố data:image/...;base64, nếu nguồn hình ảnh của bạn thêm vào đó, và tránh ký tự xuống dòng. Xác nhận tệp là hình ảnh thay vì trang HTML hoặc tải xuống trống.
Sử dụng tham chiếu lỗi CapSolver để biết mã trả về thực tế. Một vấn đề khóa tài khoản, nhiệm vụ không được hỗ trợ và yêu cầu hình ảnh không hợp lệ yêu cầu các sửa chữa khác nhau. Không tiếp tục gửi cùng đầu vào bị từ chối mà không xem xét lỗi.
Kiểm tra hình ảnh chính xác được gửi đến API. Tìm các ký tự bị cắt, hình ảnh cũ hoặc văn bản không liên quan trong bản ghi. Kiểm tra xem module được chọn có khớp với nội dung ký tự hay không.
Giữ lại một ví dụ chẩn đoán giới hạn từ thử nghiệm của bạn, với nội dung trang nhạy cảm bị loại bỏ. Điều này hữu ích hơn nhiều để điều tra chất lượng nhận dạng so với hình ảnh chụp màn hình toàn bộ trình duyệt sau khi thách thức đã thay đổi.
Kiểm tra xem hình ảnh có được làm mới, câu trả lời có được nhập vào trường đúng hay không và ứng dụng có báo lỗi xác minh biểu mẫu riêng biệt hay không. Một trường bắt buộc hoặc trạng thái biểu mẫu hết hạn có thể ngăn gửi, ngay cả khi các ký tự được nhận dạng trông đúng.
Sử dụng chính sách thử lại có giới hạn. Nếu cùng lỗi lặp lại, dừng lại và kiểm tra nguyên nhân thay vì tạo ra hình ảnh mới và mua kết quả khác vô hạn.
Giữ việc xử lý CAPTCHA hình ảnh Python nhỏ: chuẩn bị hình ảnh hiện tại, gửi ImageToTextTask, đọc văn bản được trả về và xác minh lần thử nghiệm biểu mẫu tương ứng.
CapSolver xử lý bước nhận dạng. Đoạn mã của bạn cung cấp hình ảnh hợp lệ và giữ câu trả lời gắn với thao tác đúng, điều này làm cho kết quả hữu ích trong quy trình tự động hóa thực tế.
Câu hỏi: ImageToTextTask có yêu cầu kiểm tra kết quả không?
Không. Nhiệm vụ này trả về kết quả nhận dạng hình ảnh trực tiếp. Tuân theo hành vi phản hồi được tài liệu hóa thay vì thêm vòng lặp kiểm tra dành cho nhiệm vụ token bất đồng bộ.
Câu hỏi: Tôi có thể truyền URL hình ảnh dưới dạng body không?
Không. Đầu vào body được tài liệu hóa là nội dung hình ảnh được mã hóa Base64. Hãy lấy các byte hình ảnh được phép trước, sau đó mã hóa chúng.
Câu hỏi: Giá trị nào chứa văn bản được nhận dạng?
Kết quả HTTP sử dụng solution.text. Trong mẫu SDK Python chính thức, đọc văn bản từ đối tượng giải pháp được trả về.
Câu hỏi: Ví dụ này có thể giải một hộp kiểm reCAPTCHA không?
Không. ImageToTextTask là nhiệm vụ nhận dạng văn bản. Một widget reCAPTCHA cần tích hợp reCAPTCHA được tài liệu hóa phù hợp thay vì ảnh chụp màn hình được gửi đến ví dụ này.
Câu hỏi: Tại sao biểu mẫu từ chối câu trả lời dường như đúng?
Câu trả lời có thể thuộc về hình ảnh trước đó, được nhập vào trường sai hoặc đi kèm với giá trị biểu mẫu khác không hợp lệ. Kiểm tra biểu mẫu hiện tại và phản hồi thực tế trước khi đổ lỗi cho nhận dạng hình ảnh.

Anh Tuan
Data Science Expert
Turning task outcomes into actionable insights.
GIỚI THIỆU TÁC GIẢ
Hiểu các nhiệm vụ CAPTCHA không cần proxy, khi nào cần sử dụng proxy được cung cấp, và cách chọn nhiệm vụ CapSolver đúng cho quy trình làm việc của trình duyệt hoặc API của bạn.

Hiểu rõ token CAPTCHA, cookies, kết quả giải CAPTCHA, bao gồm reCAPTCHA, Turnstile, thời hạn, bối cảnh trình duyệt, và các kiểm tra xác nhận hoàn thành.
