Cách giải quyết reCAPTCHA với Playwright và CapSolver (Hướng dẫn từng bước)
Cách giải quyết reCAPTCHA với Playwright và CapSolver (Hướng dẫn từng bước)
Anh Tuan
Data Science Expert
04-Sep-2025
Bạn có từng gặp phải CAPTCHA khi thu thập dữ liệu web không? Nhiều trang web sử dụng hệ thống CAPTCHA (phổ biến nhất là reCAPTCHA) để ngăn chặn truy cập tự động. Nhưng trong hướng dẫn này, tôi sẽ hướng dẫn bạn cách tự động giải quyết reCAPTCHA v2 và v3 với Playwright bằng CapSolver — một API giải quyết CAPTCHA mạnh mẽ.
Playwright là gì?
Playwright là một thư viện Node.js mã nguồn mở dành cho tự động hóa trình duyệt. Nó hỗ trợ nhiều trình duyệt như Chromium, Firefox và WebKit, biến nó thành một công cụ đa năng cho các nhà phát triển. Playwright được biết đến với độ tin cậy, tốc độ và khả năng xử lý các tương tác web phức tạp, bao gồm xử lý nội dung động, điền vào biểu mẫu và xử lý cửa sổ bật lên.
Bạn đang gặp khó khăn với việc giải quyết CAPTCHA khó chịu liên tục không thành công?
Khám phá giải pháp giải quyết CAPTCHA tự động liền mạch với công nghệ Auto Web Unblock sử dụng AI của Capsolver!
Nhận mã khuyến mãi Bonus Code của bạn cho các giải pháp CAPTCHA hàng đầu; CapSolver: WEBS. Sau khi đổi, bạn sẽ nhận được thêm 5% tiền thưởng sau mỗi lần nạp tiền, không giới hạn
reCAPTCHA là gì và tại sao nó quan trọng trong việc thu thập dữ liệu web?
reCAPTCHA là một hệ thống CAPTCHA do Google thiết kế để phân biệt giữa người dùng và bot. Nó thường yêu cầu người dùng thực hiện các nhiệm vụ như xác định hình ảnh hoặc chỉ cần chọn ô "Tôi không phải là robot". Mặc dù những nhiệm vụ này rất đơn giản đối với con người, nhưng chúng lại là một thách thức lớn đối với bot, điều này chính xác là mục đích của nó.
reCAPTCHA có nhiều phiên bản, mỗi phiên bản được thiết kế để phân biệt giữa người dùng và bot theo những cách độc đáo:
reCAPTCHA v1: Phiên bản gốc yêu cầu người dùng giải mã và nhập văn bản bị méo vào hộp văn bản.
reCAPTCHA v2: Phiên bản này giới thiệu hộp kiểm quen thuộc, người dùng xác nhận danh tính của mình bằng cách nhấp vào "Tôi không phải là robot". Thỉnh thoảng, nó có thể yêu cầu người dùng chọn các hình ảnh cụ thể từ lưới để xác minh tính xác thực của họ.
reCAPTCHA v3: Không giống như các phiên bản trước, reCAPTCHA v3 hoạt động âm thầm ở chế độ nền, phân tích hành vi của người dùng để gán điểm rủi ro cho biết người dùng có phải là người hay bot. Phiên bản này cung cấp trải nghiệm liền mạch, không yêu cầu tương tác trực tiếp từ người dùng.
Trong bài viết này, chúng ta sẽ tập trung vào việc giải quyết reCAPTCHA V2 và V3, được sử dụng rộng rãi để phân biệt người dùng thực sự với bot. reCAPTCHA V2 thường hiển thị một hộp kiểm với lời nhắc "Tôi không phải là robot", trong khi reCAPTCHA V3 có thể xuất hiện dưới dạng huy hiệu vô hình, thực hiện các kiểm tra của nó mà không làm gián đoạn trải nghiệm của người dùng. Đây là một ví dụ trực quan về reCAPTCHA hoạt động:
Tại sao sử dụng Playwright để thu thập dữ liệu web?
Khả năng của Playwright trong việc mô phỏng tương tác của người dùng thực tế trên nhiều trình duyệt làm cho nó trở nên lý tưởng để thu thập dữ liệu web. Nó có thể xử lý các tình huống phức tạp, chẳng hạn như điền vào biểu mẫu, điều hướng qua các trang và tương tác với nội dung động. Tuy nhiên, khi một trang web sử dụng reCAPTCHA, riêng Playwright không thể giải quyết được thách thức này — đây là lúc CapSolver phát huy tác dụng.
Chi tiết từng bước: Giải quyết reCAPTCHA v2 với Playwright và CapSolver
CapSolver hỗ trợ nhiều thách thức CAPTCHA với hỗ trợ toàn diện, bao gồm reCAPTCHA v2, v3 và hơn thế nữa. Các giải pháp được điều chỉnh đảm bảo điều hướng trơn tru ngay cả thông qua các hệ thống bảo mật tiên tiến nhất.
Các tính năng chính của CapSolver bao gồm:
Phạm vi rộng các CAPTCHA được hỗ trợ: Từ reCAPTCHA đến Turnstile, CapSolver có thể xử lý tất cả.
Tích hợp API dễ dàng: Có tài liệu chi tiết, giúp dễ dàng tích hợp CapSolver với các ứng dụng hiện có của bạn.
Tiện ích mở rộng trình duyệt: Có sẵn cho Chrome cho phép bạn giải quyết CAPTCHA trực tiếp trong trình duyệt của mình.
Giá cả linh hoạt: CapSolver cung cấp các gói giá khác nhau để đáp ứng nhiều nhu cầu, đảm bảo bạn có thể tìm thấy gói phù hợp với dự án của mình.
Cài đặt và thiết lập
Để giải quyết các thách thức reCAPTCHA bằng Playwright, bạn cần cài đặt thư viện playwright-recaptcha. Thư viện này yêu cầu cài đặt FFmpeg trên hệ thống của bạn, điều này rất cần thiết để chuyển đổi các thách thức âm thanh reCAPTCHA v2.
Bạn có thể cài đặt thư viện và FFmpeg cần thiết bằng các lệnh sau dựa trên hệ điều hành của mình:
Cài đặt thư viện:
bashCopy
pip install playwright-recaptcha
Cài đặt FFmpeg:
Debian:
bashCopy
apt-get install ffmpeg
MacOS:
bashCopy
brew install ffmpeg
Windows:
bashCopy
winget install ffmpeg
Lưu ý: Đảm bảo rằng các tệp thực thi ffmpeg và ffprobe nằm trong PATH của hệ thống để pydub có thể định vị chúng.
Tích hợp CapSolver vào quy trình làm việc của bạn
Sau khi đã cài đặt các công cụ cần thiết, bạn có thể tích hợp CapSolver vào dự án thu thập dữ liệu web của mình để xử lý các thách thức reCAPTCHA tự động. Dưới đây là ví dụ về cách thực hiện việc này bằng Python:
Mã mẫu để giải quyết reCAPTCHA v2 với CapSolver
pythonCopy
# pip install requests
import requests
import time
# TODO: set your config
api_key = "YOUR_API_KEY" # api key của bạn trên capsolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-" # site key của trang web mục tiêu
site_url = "https://www.google.com/recaptcha/api2/demo" # url trang của trang web mục tiêu
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV2TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Tạo task thất bại:", res.text)
return
print(f"Đã có taskId: {task_id} / Đang lấy kết quả...")
while True:
time.sleep(3) # delay
payload = {"clientKey": api_key, "taskId": task_id}
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('gRecaptchaResponse')
if status == "failed" or resp.get("errorId"):
print("Giải quyết thất bại! phản hồi:", res.text)
return
token = capsolver()
print(token)
Mã mẫu để giải quyết reCAPTCHA v3 với CapSolver
pythonCopy
# pip install requests
import requests
import time
# TODO: set your config
api_key = "YOUR_API_KEY" # api key của bạn trên capsolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_kl-" # site key của trang web mục tiêu
site_url = "https://www.google.com" # url trang của trang web mục tiêu
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'ReCaptchaV3TaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url,
"pageAction": "login",
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Tạo task thất bại:", res.text)
return
print(f"Đã có taskId: {task_id} / Đang lấy kết quả...")
while True:
time.sleep(1) # delay
payload = {"clientKey": api_key, "taskId": task_id}
res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
resp = res.json()
status = resp.get("status")
if status == "ready":
return resp.get("solution", {}).get('gRecaptchaResponse')
if status == "failed" or resp.get("errorId"):
print("Giải quyết thất bại! phản hồi:", res.text)
return
token = capsolver()
print(token)
Các thực tiễn tốt nhất để xử lý CAPTCHA trong việc thu thập dữ liệu web
Sử dụng Proxy: Khi thu thập dữ liệu web, điều quan trọng là phải sử dụng proxy để tránh bị cấm hoặc bị hạn chế tốc độ.
Xoay vòng User-Agent: Để tránh bị phát hiện hơn nữa, hãy xoay vòng các chuỗi user-agent để bắt chước các trình duyệt và thiết bị khác nhau.
Tôn trọng chính sách của trang web: Luôn kiểm tra tệp robots.txt của trang web và tuân thủ các quy tắc thu thập dữ liệu của nó. Tránh quá tải máy chủ bằng quá nhiều yêu cầu.
Xử lý lỗi một cách khéo léo: Thực hiện xử lý lỗi trong các script của bạn để quản lý các trường hợp giải quyết CAPTCHA thất bại. Điều này sẽ giúp duy trì tính mạnh mẽ của các dự án thu thập dữ liệu của bạn.
Kết luận
Bằng cách kết hợp Playwright với CapSolver, bạn có thể tự động bỏ qua reCAPTCHA v2 và v3, giúp các dự án thu thập dữ liệu của bạn hoạt động trơn tru. Nó nhanh chóng, đáng tin cậy và giúp bạn tránh bị gián đoạn thủ công.
Câu hỏi thường gặp về việc giải quyết reCAPTCHA với Playwright
Câu 1: Cách dễ nhất để giải quyết reCAPTCHA trong Playwright là gì?
Phương pháp đơn giản nhất là tích hợp API của CapSolver — nó tự động xử lý các token v2 và v3.
Câu 2: CapSolver có thể xử lý reCAPTCHA v3 không?
Có. Nó trả về token gRecaptchaResponse dựa trên minScore bạn yêu cầu.
Câu 3: CapSolver nhanh như thế nào?
Thông thường chỉ mất vài giây, tùy thuộc vào tải của hệ thống.
Câu 4: Tôi có thể sử dụng CapSolver mà không cần proxy không?
Có, nhưng proxy giúp cải thiện độ ổn định và giảm số lần bị chặn.
Tuyên bố Tuân thủ: Thông tin được cung cấp trên blog này chỉ mang tính chất tham khảo. CapSolver cam kết tuân thủ tất cả các luật và quy định hiện hành. Việc sử dụng mạng lưới CapSolver cho các hoạt động bất hợp pháp, gian lận hoặc lạm dụng là hoàn toàn bị cấm và sẽ bị điều tra. Các giải pháp giải captcha của chúng tôi nâng cao trải nghiệm người dùng trong khi đảm bảo tuân thủ 100% trong việc giúp giải quyết các khó khăn về captcha trong quá trình thu thập dữ liệu công khai. Chúng tôi khuyến khích việc sử dụng dịch vụ của chúng tôi một cách có trách nhiệm. Để biết thêm thông tin, vui lòng truy cập Điều khoản Dịch vụ và Chính sách Quyền riêng tư.