CAPSOLVER
Blog
Cách giải quyết dấu vân tay TLS/JA3 trong Web Scraping với curl_cffi

Cách giải quyết vấn đề TLS/JA3 Fingerprinting trong Web Scraping với curl_cffi

Logo of CapSolver

Anh Tuan

Data Science Expert

28-Aug-2024

Bạn đang gặp khó khăn khi đối mặt với các biện pháp chống bot khi scraping website? curl_cffi, một thư viện Python nâng cao bao quanh công cụ cURL, có thể giúp bạn vượt qua các rào cản này một cách hiệu quả. Bằng cách bắt chước hành vi trình duyệt và tận dụng các tính năng của cURL, curl_cffi tăng cường khả năng của scraper để tránh phát hiện và hoạt động trơn tru. Trong hướng dẫn này, chúng ta sẽ khám phá cách thức hoạt động của curl_cffi, cách sử dụng nó cho nhiều tác vụ khác nhau và giải quyết các hạn chế của nó. Chúng ta cũng sẽ thảo luận về các giải pháp tiềm năng để khắc phục những hạn chế này.

curl_cffi là gì?

curl_cffi là một thư viện Python được thiết kế cho các yêu cầu mạng, tương tự như các thư viện như requestshttpx. Tuy nhiên, không giống như những thư viện này, curl_cffi có thể mô phỏng dấu vân tay TLS/JA3 và HTTP/2 của trình duyệt. curl-impersonate là một công cụ dòng lệnh có thể mô phỏng bốn trình duyệt chính và thực hiện các giao thức TLS và HTTP giống như một trình duyệt thực sự. curl_cffi gói curl-impersonate vào một thư viện Python bằng cách sử dụng cffi.

Bạ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 captcha khó chịu?

Khám phá giải pháp captcha tự động liền mạch với công nghệ Auto Web Unblock AI-powered của CapSolver!

Nhận Mã Khuyến Mãi 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

Dấu vân tay TLS/JA3 là gì?

Ngày nay, hầu hết các trang web sử dụng HTTPS. Để thiết lập kết nối HTTPS, một handshake TLS diễn ra giữa máy chủ và máy khách, trao đổi thông tin như các phiên bản TLS được hỗ trợ và các thuật toán mã hóa. Các máy khách khác nhau có các đặc điểm khác nhau, và những chi tiết này thường ổn định, cho phép máy chủ xác định các yêu cầu đến từ trình duyệt người dùng điển hình hoặc các script tự động. JA3 là một thuật toán phổ biến được sử dụng để tạo dấu vân tay TLS. Nó hoạt động bằng cách nối các đặc điểm này lại với nhau và tính toán một băm MD5.

Sử dụng curl_cffi

Việc sử dụng curl_cffi khá giống với requests. Dưới đây là cách bạn có thể sử dụng requests để lấy dấu vân tay JA3:

python Copy
import requests

url = "https://tls.browserleaks.com/json"
r = requests.get(url)
print(r.json())

Bạn có thể nhận được kết quả như thế này:

json Copy
{
    "user_agent": "python-requests/2.32.3",
    "ja3_hash": "8d9f7747675e24454cd9b7ed35c58707",
    "ja3_text": "771,4866-4867-4865-49196-49200-49195-49199-52393-52392-159-158-52394-49327-49325-49326-49324-49188-49192-49187-49191-49162-49172-49161-49171-49315-49311-49314-49310-107-103-57-51-157-156-49313-49309-49312-49308-61-60-53-47-255,0-11-10-16-22-23-49-13-43-45-51-21,29-23-30-25-24,0-1-2",
    "ja3n_hash": "a790a1e311289ac1543f411f6ffceddf",
    "ja3n_text": "771,4866-4867-4865-49196-49200-49195-49199-52393-52392-159-158-52394-49327-49325-49326-49324-49188-49192-49187-49191-49162-49172-49161-49171-49315-49311-49314-49310-107-103-57-51-157-156-49313-49309-49312-49308-61-60-53-47-255,0-10-11-13-16-21-22-23-43-45-49-51,29-23-30-25-24,0-1-2",
    "akamai_hash": "",
    "akamai_text": ""
}

Nếu bạn thực hiện các yêu cầu lặp lại, bạn sẽ thấy rằng giá trị băm JA3 của bạn vẫn giữ nguyên. Tuy nhiên, bắt đầu từ phiên bản Chrome 110, thứ tự mở rộng TLS ClientHello được sắp xếp ngẫu nhiên, giúp cho các nhà phát triển trang web dễ dàng chặn các thư viện như requests dựa trên dấu vân tay JA3. Nếu các yêu cầu của bạn liên tục hiển thị cùng một dấu vân tay JA3, chúng có thể bị xác định là đến từ một người dùng duy nhất, tăng khả năng bị gắn cờ là bot.

Đây là cách sử dụng curl_cffi để mô phỏng dấu vân tay JA3 thực:

python Copy
from curl_cffi import requests

url = "https://tls.browserleaks.com/json"
r = requests.get(url, impersonate="chrome124")
print(r.json())

Tham số impersonate cho phép bạn chỉ định trình duyệt và phiên bản để mô phỏng. Các trình duyệt được hỗ trợ bao gồm Chrome, Chrome Android, Edge và Safari, với các phiên bản được cập nhật liên tục. Để biết thông tin chi tiết, hãy tham khảo kho lưu trữ curl_cffi trên GitHub. Với curl_cffi, dấu vân tay JA3 sẽ phù hợp với dấu vân tay của một trình duyệt thực và bắt đầu từ Chrome 110, dấu vân tay JA3 sẽ thay đổi với mỗi yêu cầu:

json Copy
{
    "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
    "ja3_hash": "c97c8dac4ca1de968fe230de54f3e0f3",
    "ja3_text": "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,16-10-27-18-5-51-23-17513-45-35-43-13-65281-0-11-65037,25497-29-23-24,0",
    "ja3n_hash": "4c9ce26028c11d7544da00d3f7e4f45c",
    "ja3n_text": "771,4865-4866-4867-49195-49199-49196-49200-52393-52392-49171-49172-156-157-47-53,0-5-10-11-13-16-18-23-27-35-43-45-51-17513-65037-65281,25497-29-23-24,0",
    "akamai_hash": "52d84b11737d980aef856699f885ca86",
    "akamai_text": "1:65536;2:0;4:6291456;6:262144|15663105|0|m,a,s,p"
}

Khắc phục hạn chế của curl_cffi

Mặc dù curl_cffi có thể mô phỏng dấu vân tay JA3 thực sự và tiềm năng tránh các thử thách và chặn bot, nó có thể không phải lúc nào cũng đủ. Nhiều trang web triển khai các cơ chế bảo vệ bot nâng cao như captcha, reCaptcha, captcha, Cloudflare Turnstile, captcha và captcha WAF. Các hệ thống này sử dụng hình ảnh phức tạp và các thử thách JavaScript khó đọc để phân biệt giữa con người và bot. Đôi khi, ngay cả với dấu vân tay JA3 chính xác và ngẫu nhiên, việc bỏ qua các thử thách này là không thể tránh khỏi.

Nếu bạn gặp phải các thử thách CAPTCHA, bất kể thư viện yêu cầu bạn sử dụng, chúng có thể không thể tránh khỏi. Tuy nhiên, không cần phải lo lắng. CapSolver cung cấp một giải pháp cho những vấn đề này. CapSolver sử dụng công nghệ mở khóa web tự động dựa trên AI để giải quyết nhiều thử thách bot trong vài giây. Cho dù phải đối mặt với hình ảnh hay các vấn đề phức tạp, CapSolver đều có thể xử lý hiệu quả. Nếu giải pháp thất bại, bạn sẽ không phải chịu bất kỳ chi phí nào.

CapSolver cũng cung cấp tiện ích mở rộng trình duyệt tự động giải quyết CAPTCHA trong quá trình thu thập dữ liệu với Selenium. Ngoài ra, một giải pháp API có sẵn để giải quyết CAPTCHA và lấy token trong các framework như Scrapy. Mọi thứ đều có thể được thực hiện chỉ trong vài giây. Để biết thêm chi tiết, hãy tham khảo Tài liệu CapSolver.

Kết luận

Bằng cách tích hợp curl_cffi vào thiết lập thu thập dữ liệu web của bạn, bạn có thể hiệu quả bắt chước hành vi trình duyệt thực sự để vượt qua các thử thách xác thực TLS/JA3. Mặc dù curl_cffi cung cấp các công cụ mạnh mẽ để xử lý các thử thách này, nhưng các hệ thống phát hiện bot và CAPTCHA nâng cao vẫn tạo ra những trở ngại đáng kể. CapSolver cung cấp một giải pháp bổ sung để giải quyết các thử thách CAPTCHA này một cách liền mạch, đảm bảo các hoạt động thu thập dữ liệu của bạn diễn ra suôn sẻ.

Để biết thêm thông tin chi tiết và tài nguyên, hãy xem trang web CapSolver và khám phá kho lưu trữ GitHub curl_cffi.

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ư.

Thêm

Nâng cao tự động hóa doanh nghiệp:
Nâng cao Tự động hóa Doanh nghiệp: Cơ sở hạ tầng Dựa trên Mô hình Ngôn ngữ Lớn (LLM) cho Nhận dạng CAPTCHA Mượt mà & Hiệu quả Hoạt động

Khám phá cách cơ sở hạ tầng tự động hóa AI được cung cấp bởi Mô hình Ngôn ngữ lớn (LLM) đột phá trong việc nhận diện CAPTCHA, nâng cao hiệu quả quy trình kinh doanh và giảm thiểu sự can thiệp thủ công. Tối ưu hóa các quy trình tự động của bạn với các giải pháp xác minh tiên tiến.

ai
Logo of CapSolver

Anh Tuan

30-Mar-2026

Mở rộng thu thập dữ liệu cho huấn luyện LLM: Giải quyết CAPTCHAs tại quy mô lớn
Mở rộng thu thập dữ liệu cho huấn luyện LLM: Giải quyết CAPTCHAs ở quy mô lớn

Hãy học cách mở rộng thu thập dữ liệu cho việc huấn luyện mô hình LLM bằng cách giải CAPTCHAs quy mô lớn. Khám phá các chiến lược tự động để xây dựng các bộ dữ liệu chất lượng cao cho các mô hình AI.

AI
Logo of CapSolver

Ethan Collins

27-Mar-2026

Khắc phục Lỗi 1005 Cloudflare: Hướng dẫn và Giải pháp Thu thập dữ liệu web
Khắc phục Lỗi 1005 Cloudflare: Hướng dẫn Gỡ mã web và Giải pháp

Học cách khắc phục lỗi Cloudflare Error 1005 bị từ chối truy cập khi quét dữ liệu. Khám phá các giải pháp như proxy nhà ở, dấu vân tay trình duyệt và CapSolver cho CAPTCHA. Tối ưu hóa việc trích xuất dữ liệu.

Cloudflare
Logo of CapSolver

Adélia Cruz

27-Mar-2026

OpenBrowser Sử dụng CapSolver
Làm thế nào để giải CAPTCHA trong OpenBrowser bằng cách sử dụng CapSolver (Hướng dẫn tự động hóa AI Agent)

Giải CAPTCHA trong OpenBrowser bằng CapSolver. Tự động hóa reCAPTCHA, Turnstile và hơn thế nữa cho các tác nhân AI một cách dễ dàng.

AI
Logo of CapSolver

Anh Tuan

26-Mar-2026

HyperBrowser với CapSolver
Cách giải CAPTCHA bất kỳ trong HyperBrowser bằng CapSolver (Hướng dẫn cài đặt đầy đủ)

Giải bất kỳ CAPTCHA nào trong HyperBrowser bằng CapSolver. Tự động hóa reCAPTCHA, Turnstile, AWS WAF và nhiều thứ khác một cách dễ dàng.

AI
Logo of CapSolver

Anh Tuan

26-Mar-2026

Cách giải reCAPTCHA v2 Python và API
Cách giải reCAPTCHA v2 Python và API

Học cách giải reCAPTCHA v2 bằng Python và API. Hướng dẫn toàn diện này bao gồm các phương pháp Proxy và không dùng Proxy cùng với mã nguồn có thể triển khai cho tự động hóa.

reCAPTCHA
Logo of CapSolver

Rajinder Singh

25-Mar-2026