Cách bỏ qua reCaptcha v3 trong Python bằng ví dụ mã#
Tổng quan#
Tự động hóa tương tác trang web có thể hợp lý hóa đáng kể việc thử nghiệm và các tác vụ lặp lại. Tuy nhiên, một vấn đề thường gặp là nhận dạng reCAPTCHA, nhằm mục đích phân biệt giữa người dùng là con người và bot. Hướng dẫn này sẽ chỉ cho bạn cách giải quyết các thách thức reCAPTCHA v3 bằng Python và dịch vụ NextCaptcha, sử dụng trình giải của con người để xử lý các CAPTCHA này theo cách hợp pháp và có đạo đức.
Sự chuẩn bị#
Trước khi bắt đầu, bạn cần phải:
Đăng ký tài khoản NextCaptcha : Truy cập NextCaptcha và đăng ký để nhận khóa API của bạn.
Cài đặt các gói Python cần thiết : Đảm bảo bạn có requests
đã cài đặt. Bạn có thể cài đặt bằng pip nếu bạn chưa có:
pip install requests
Tìm Sitekey#
Để giải quyết reCAPTCHA, bạn cần khóa trang web được nhúng trong HTML của trang nơi reCAPTCHA được sử dụng. Sau đây là cách bạn có thể tìm thấy khóa:
Điều hướng đến trang có reCAPTCHA .
Kiểm tra nguồn của trang : Nhấp chuột phải vào trang và chọn "Kiểm tra" hoặc "Xem nguồn trang".
Tìm kiếm khóa trang web : Tìm kiếm data-sitekey
thuộc tính trong HTML. Nó sẽ trông giống như thế này:
< div class = "g-recaptcha" data-sitekey = "YOUR_SITE_KEY" ></ div >
Sao chép cái này YOUR_SITE_KEY
giá trị.
Giải quyết Captcha#
Bây giờ bạn đã có khóa trang web, bạn có thể sử dụng
API NextCaptcha để giải quyết thử thách reCAPTCHA.
Gửi Captcha đã giải quyết#
Sau khi có được mã thông báo reCAPTCHA, bạn có thể gửi nó cùng với biểu mẫu hoặc yêu cầu yêu cầu giải pháp CAPTCHA. Sau đây là ví dụ về cách bạn có thể gửi biểu mẫu:
# URL where the form is submitted
form_submit_url = 'URL_TO_SUBMIT_FORM'
# Form data including the reCAPTCHA token
form_data = {
'some_form_field' : 'value' ,
'g-recaptcha-response' : recaptcha_token
}
# Submit the form
response = requests.post(form_submit_url, data = form_data)
print (response.text)
Mã đầy đủ để giải quyết reCaptcha tự động#
Kết hợp tất cả các bước, đây là mã hoàn chỉnh:
import requests
import time
# Your NextCaptcha API key
API_KEY = 'YOUR_NextCAPTCHA_API_KEY'
# The URL of the page with the reCAPTCHA
url = 'URL_OF_THE_PAGE_WITH_RECAPTCHA'
# The site key for reCAPTCHA v3
site_key = 'YOUR_SITE_KEY'
# Requesting the reCAPTCHA solution
response = requests.post( 'https://api.nextcaptcha.com/createTask' , data = {
"clientKey" : API_KEY ,
"task" : {
"type" : "RecaptchaV3TaskProxyless" ,
"websiteURL" :url,
"websiteKey" :site_key
}
})
task_id = response.json().get( 'taskId' )
solution = None
while solution is None :
time.sleep( 1 ) # Wait a few seconds before checking again
response = requests.post( 'https://api.nextcaptcha.com/getTaskResult' , data = {
"clientKey" : "api key" ,
"taskId" : task_id
})
if response.json().get( 'errorId' ) == 0 :
solution = response.json().get( 'solution' )
# The reCAPTCHA token
recaptcha_token = solution[ "gRecaptchaResponse" ]
print ( f 'reCAPTCHA token: { recaptcha_token } ' )
# URL where the form is submitted
form_submit_url = 'URL_TO_SUBMIT_FORM'
# Form data including the reCAPTCHA token
form_data = {
'some_form_field' : 'value' ,
'g-recaptcha-response' : recaptcha_token
}
# Submit the form
response = requests.post(form_submit_url, data = form_data)
print (response.text)
Bằng cách làm theo hướng dẫn này, bạn có thể tự động hóa quy trình giải quyết các thử thách reCAPTCHA v3 theo cách tôn trọng các điều khoản dịch vụ của các trang web mà bạn tương tác.