Cách giải quyết Captcha Turnstile của Cloudflare bằng Selenium
Cách giải quyết Captcha Turnstile của Cloudflare bằng Selenium
Anh Tuan
Data Science Expert
11-Oct-2024
Công cụ web scraper của bạn có đang gặp khó khăn khi Cloudflare chặn các yêu cầu của bạn không? Cloudflare's Turnstile Captchas được thiết kế để xác định và cản trở lưu lượng tự động, tạo ra những trở ngại đáng kể cho việc thu thập dữ liệu web và tự động hóa. Tuy nhiên, bằng cách tận dụng một trình duyệt không đầu như Selenium, bạn có thể vượt qua những trở ngại này một cách hiệu quả. Điều đó nói rằng, các thiết lập Selenium tiêu chuẩn vẫn có thể kích hoạt các biện pháp phòng chống bot tinh vi của Cloudflare.
Trong bài đăng trên blog này, chúng tôi sẽ thảo luận về một số kỹ thuật hiệu quả để khắc phục Cloudflare Turnstile Captchas bằng Selenium
Hiểu Cloudflare Turnstile Captchas
Cloudflare Turnstile Captchas là những thử thách nâng cao nhằm phân biệt giữa người dùng và bot tự động. Không giống như CAPTCHA truyền thống, Turnstile sử dụng các đánh giá dựa trên hành vi và tương tác khác nhau, chẳng hạn như phân tích chuyển động chuột, mẫu nhấp chuột và các số liệu tương tác khác để xác định tính hợp pháp của người dùng.
Tại sao nên chọn Selenium?
Selenium là một công cụ mạnh mẽ để tự động hóa trình duyệt web, cho phép bạn mô phỏng các hành động của người dùng như nhấp chuột, gửi biểu mẫu và điều hướng. Tuy nhiên, do bản chất tự động hóa của nó, các thiết lập Selenium thông thường vẫn có thể bị phát hiện bởi hệ thống bảo mật của Cloudflare. Để quản lý hiệu quả Turnstile Captchas, việc tích hợp Selenium với các công cụ và kỹ thuật bổ sung có thể tăng cường đáng kể thành công trong thu thập dữ liệu web của bạn.
Các kỹ thuật hiệu quả để giải quyết Cloudflare Turnstile Captchas bằng Selenium
1. Triển khai CapSolver
Một trong những phương pháp hiệu quả nhất để giải quyết CAPTCHA là sử dụng dịch vụ giải quyết CAPTCHA như CapSolver. Dịch vụ này tận dụng các thuật toán tiên tiến và người giải quyết để giải quyết nhanh chóng và chính xác các loại CAPTCHA khác nhau, bao gồm cả Cloudflare Turnstile.
Mã thưởng
Bạn đang gặp khó khăn với việc thất bại liên tục trong việc giải quyết hoàn toàn captcha khó chịu?
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 hỗ trợ AI của Capsolver!
Nhận Mã thưởng của bạn cho các giải pháp captcha hàng đầu; CapSolver: WEBS. Sau khi đổi mã, 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
Tích hợp API của CapSolver vào kịch bản Selenium của bạn.
Ví dụ mã:
pythonCopy
# pip install requests
import requests
import time
api_key = "YOUR_API_KEY" # khóa api của bạn của capsolver
site_key = "0x4XXXXXXXXXXXXXXXXX" # khóa trang web của trang web đích của bạn
site_url = "https://www.yourwebsite.com" # url trang của trang web đích của bạn
def capsolver():
payload = {
"clientKey": api_key,
"task": {
"type": 'AntiTurnstileTaskProxyLess',
"websiteKey": site_key,
"websiteURL": site_url,
"metadata": {
"action": "" # tùy chọn
}
}
}
res = requests.post("https://api.capsolver.com/createTask", json=payload)
resp = res.json()
task_id = resp.get("taskId")
if not task_id:
print("Không thể tạo tác vụ:", res.text)
return
print(f"Nhận taskId: {task_id} / Đang lấy kết quả...")
while True:
time.sleep(1) # trì hoãn
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('token')
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)
Trong mã này, thay thế YOUR_API_KEY, 0x4XXXXXXXXXXXXXXXXX và https://www.yourwebsite.com bằng khóa API CapSolver thực tế của bạn, khóa trang web từ trang web đích và URL của trang bạn đang nhắm mục tiêu, tương ứng. Kịch bản này sẽ tạo một tác vụ để giải quyết Turnstile Captcha và trả về mã thông báo giải pháp.
2. Sử dụng ChromeDriver không bị phát hiện
Để tránh bị phát hiện bởi Cloudflare, việc sử dụng phiên bản ChromeDriver không bị phát hiện là điều cần thiết. Hệ thống chống bot của Cloudflare có thể dễ dàng nhận ra các trường hợp ChromeDriver tiêu chuẩn, dẫn đến các thử thách CAPTCHA. ChromeDriver không bị phát hiện sẽ sửa đổi dấu vân tay và hành vi của trình duyệt để giảm thiểu cơ hội bị phát hiện.
Cấu hình Selenium để sử dụng phiên bản đã sửa đổi này.
Ví dụ mã:
pythonCopy
from undetected_chromedriver.v2 import Chrome, ChromeOptions
options = ChromeOptions()
options.add_argument('--headless') # Sử dụng chế độ không đầu nếu cần
driver = Chrome(options=options)
driver.get('https://example.com')
# Thực hiện các hành động cần thiết và xử lý CAPTCHA
3. Sử dụng SeleniumBase
SeleniumBase là một phần mở rộng cho Selenium nhằm nâng cao chức năng và dễ sử dụng cho việc thu thập dữ liệu web. Nó đơn giản hóa việc quản lý các tương tác web và tự động hóa các tác vụ phức tạp hiệu quả hơn.
Các bước để triển khai:
Cài đặt SeleniumBase thông qua pip:
bashCopy
pip install seleniumbase
Sử dụng các tính năng của SeleniumBase để quản lý các tương tác web và xử lý CAPTCHA.
Ví dụ mã:
pythonCopy
from seleniumbase import BaseCase
class MyTestClass(BaseCase):
def test_example(self):
self.open('https://example.com')
# Thực hiện các hành động cần thiết và xử lý CAPTCHA
4. Sử dụng Selenium Stealth Plugin
Selenium Stealth plugin giúp che giấu nỗ lực tự động hóa của bạn, khiến Cloudflare khó phát hiện việc sử dụng bot hơn. Plugin này sửa đổi hành vi của trình duyệt để mô phỏng các tương tác của người dùng thực tế.
Các bước để triển khai:
Cài đặt Selenium Stealth plugin:
bashCopy
pip install selenium-stealth
Tích hợp plugin với thiết lập Selenium của bạn.
Ví dụ mã:
pythonCopy
from selenium import webdriver
from selenium_stealth import stealth
driver = webdriver.Chrome()
stealth(driver,
languages=["en-US", "en"],
vendor="Google Inc.",
platform="Windows",
webgl_vendor="Google Inc.",
render="WebKit",
fix_hairline=True
)
driver.get('https://example.com')
# Thực hiện các hành động cần thiết và xử lý CAPTCHA
5. Sử dụng Proxy cao cấp
Việc sử dụng proxy cao cấp có thể giúp bạn tránh bị cấm IP bằng cách phân phối lưu lượng truy cập của mình trên nhiều địa chỉ. Proxy chất lượng cao làm giảm đáng kể nguy cơ bị phát hiện và chặn bởi Cloudflare.
Các bước để triển khai:
Thu thập danh sách proxy cao cấp từ nhà cung cấp đáng tin cậy.
Cấu hình Selenium để sử dụng các proxy này cho các yêu cầu web.
Kết luận
Việc điều hướng thành công Cloudflare Turnstile Captchas đòi hỏi sự kết hợp của các kỹ thuật và công cụ tiên tiến. Bằng cách tích hợp CapSolver với Selenium, sử dụng phiên bản ChromeDriver không bị phát hiện, tận dụng SeleniumBase, sử dụng các plugin ẩn danh và sử dụng proxy cao cấp, bạn có thể nâng cao khả năng thu thập dữ liệu web của mình trong khi đảm bảo tuân thủ các giao thức bảo mật web. Luôn ghi nhớ việc tuân thủ các tiêu chuẩn đạo đức và sử dụng các công cụ này một cách có trách nhiệm trong các nỗ lực thu thập dữ liệu web của bạ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ư.