
Anh Tuan
Data Science Expert
Đã xuất bản Mar 03, 2025
Đã cập nhật Feb 26, 2025 · đọc tối thiểu

Nếu bạn đã từng thử web scraping, bạn có thể đã gặp phải CAPTCHA—những bài kiểm tra "chứng minh bạn là người" khó chịu chặn các yêu cầu tự động. Trong hướng dẫn này, tôi sẽ chia sẻ các chiến lược khả thi để giảm thiểu sự gián đoạn của CAPTCHA và chỉ cho bạn cách xử lý chúng khi chúng xuất hiện. Hãy bắt đầu thôi!
CAPTCHA được thiết kế để chặn bot, điều đó có nghĩa là trình thu thập dữ liệu của bạn có thể bị gắn cờ nếu:
Mẹo: Bắt đầu bằng cách bắt chước hành vi của con người: làm chậm yêu cầu của bạn, luân phiên user agent và sử dụng proxy. Nhưng nếu CAPTCHA vẫn xuất hiện, bạn sẽ cần một giải pháp mạnh mẽ hơn.
Khi việc tránh né không đủ, các dịch vụ như Capsolver có thể tự động giải quyết CAPTCHA. Đây là cách nó hoạt động:
# pip install requests
import requests
import time
api_key = "YOUR_API_KEY" # Thay thế bằng khóa Capsolver của bạn
site_key = "" # Từ trang web mục tiêu
site_url = "" # URL mục tiêu của bạn
def solve_captcha():
payload = {
"clientKey": api_key,
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteKey": site_key,
"websiteURL": site_url
}
}
response = requests.post("https://api.capsolver.com/createTask", json=payload)
task_id = response.json().get("taskId")
# Lấy kết quả
while True:
time.sleep(3)
result = requests.post("https://api.capsolver.com/getTaskResult", json={"clientKey": api_key, "taskId": task_id})
status = result.json().get("status")
if status == "ready":
return result.json()["solution"]["gRecaptchaResponse"]
elif status == "failed":
print("Không thể giải quyết CAPTCHA")
return None
captcha_token = solve_captcha()
print(f"Mã CAPTCHA đã giải quyết: {captcha_token}")
Cách thức hoạt động:
Vẫn đang gặp khó khăn với việc liên tục thất bại trong việc giải quyết hoàn toàn các captcha trong khi thực hiện webscraping?
Nhận mã khuyến mãi Mã Khuyến Mãi của bạn cho các giải pháp captcha hàng đầu -CapSolver: CAPTCHA. Sau khi đổi mã, bạn sẽ nhận được thêm 5% tiền thưởng sau mỗi lần nạp, Không giới hạn
Không phải tất cả các trang web đều sử dụng CAPTCHA. Hãy thu thập dữ liệu từ books.toscrape.com, một sandbox không có CAPTCHA:
import requests
from bs4 import BeautifulSoup
url = "http://books.toscrape.com/"
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
# Trích xuất tiêu đề và giá sách
for book in soup.select("article.product_pod"):
title = book.h3.a["title"]
price = book.select(".price_color")[0].get_text()
print(f"Tiêu đề: {title}, Giá: {price}")
Tại sao điều này hoạt động:
Trang web này không có các biện pháp chống bot, nhưng luôn kiểm tra robots.txt của trang web trước khi thu thập dữ liệu.
Trước khi giải quyết CAPTCHA, bạn cần biết loại của nó (ví dụ: reCAPTCHA v2, hCaptcha). Sử dụng các công cụ như Hướng dẫn Xác định CAPTCHA của Capsolver để:
sitekey hoặc pageurl.Ví dụ về tham số cho reCAPTCHA v2:
websiteKey: "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"websiteURL: URL của trang mục tiêu của bạn.time.sleep().User-Agent và Accept-Language của trình duyệt.Chúng sử dụng sự kết hợp của AI và người lao động để giải quyết CAPTCHA và trả về mã thông báo để tự động hóa.
Hầu hết các loại phổ biến (reCAPTCHA, hCaptcha) có thể được giải quyết, nhưng các loại nâng cao yêu cầu các phương pháp tinh vi hơn.
CAPTCHA là một trở ngại, nhưng không phải là một điểm chết. Kết hợp các thực tiễn thu thập dữ liệu thông minh với các công cụ như Capsolver để giảm thiểu sự gián đoạn. Thu thập dữ liệu vui vẻ! 🚀

GIỚI THIỆU TÁC GIẢ
So sánh độ chính xác và tốc độ của trình giải CAPTCHA bằng cách sử dụng kết quả đã được chấp nhận, các phân vị độ trễ, các lần thử mới và quy tắc thử lại rõ ràng cho một khối lượng công việc kiểm thử được ủy quyền.

Tìm hiểu một trình giải CAPTCHA bằng LLM có thể làm được gì, những điểm mà khả năng suy luận hình ảnh còn hạn chế, và cách đánh giá các kết quả được chấp nhận trong các quy trình làm việc của tác nhân-trình duyệt được ủy quyền.

Giám sát tỷ lệ thành công của bộ giải Turnstile bằng bản tóm tắt log Python có thể chạy được. Tách riêng kết quả của bộ giải, việc xác thực token, số lần thử lại, và việc hoàn tất quy trình làm việc đã được xác nhận.

Sử dụng một danh sách kiểm CAPTCHA thực tiễn để kiểm tra trạng thái trình duyệt, các tác vụ giải mã, số lần thử lại, lỗi và kết quả cuối cùng của ứng dụng trước khi mở rộng tự động hóa.
