Sản phẩmTích hợpTài nguyênTài liệuGiá cả
Bắt đầu ngay

© 2026 CapSolver. All rights reserved.

Liên hệ chúng tôi

Slack: lola@capsolver.com

Sản phẩm

  • reCAPTCHA v2
  • reCAPTCHA v3
  • Cloudflare Turnstile
  • Cloudflare Challenge
  • AWS WAF
  • Tiện ích trình duyệt
  • Thêm nhiều loại CAPTCHA

Tích hợp

  • Selenium
  • Playwright
  • Puppeteer
  • n8n
  • Đối tác
  • Xem tất cả tích hợp

Tài nguyên

  • Chương trình giới thiệu
  • Tài liệu
  • Tham chiếu API
  • Blog
  • Câu hỏi thường gặp
  • Thuật ngữ
  • Trạng thái

Pháp lý

  • Điều khoản dịch vụ
  • Chính sách bảo mật
  • Chính sách hoàn tiền
  • Không bán thông tin cá nhân của tôi
Blog/All/Cách giải quyết vấn đề TLS/JA3 Fingerprinting trong Web Scraping với curl_cffi
Aug28, 2024

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

Anh Tuan

Anh Tuan

Data Science Expert

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ư requests và httpx. 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.

Xem thêm

May 08, 2026

ReCAPTCHA trong Trích xuất Dữ liệu Thương mại Điện tử: Hướng dẫn Tuân thủ Đầu tiên

Học cách xử lý recaptcha trong quét dữ liệu thương mại điện tử với quy trình tuân thủ, phân tích chẩn đoán, ví dụ từ CapSolver và các biện pháp kiểm soát rủi ro thực tế.

Anh Tuan
Anh Tuan
May 08, 2026

Cách AI trích xuất dữ liệu hoạt động: Giải CAPTCHA, Xử lý LLM và Quy trình dữ liệu web có cấu trúc

Học cách hoạt động của việc trích xuất dữ liệu được hỗ trợ bởi AI từ việc quét web và giải CAPTCHA đến dọn dẹp HTML, phân tích LLM và tạo JSON có cấu trúc. Khám phá các chiến lược tránh bot, các khung khai thác ngữ nghĩa như AXE, và các luồng trích xuất web AI có thể mở rộng.

Anh Tuan

Nội dung

Anh Tuan
May 07, 2026

Các khung công cụ AI tốt nhất dành cho tự động hóa web và giải CAPTCHA

So sánh các khung phần mềm đại diện AI tốt nhất cho tự động hóa web, giải CAPTCHA, tuân thủ và quy trình làm việc của đại diện sẵn sàng sản xuất vào năm 2026.

Anh Tuan
Anh Tuan
May 07, 2026

Những thư viện Java tốt nhất để trích xuất dữ liệu web đáng tin cậy

So sánh các thư viện quét trang web Java tốt nhất, bao gồm jsoup, Selenium, Playwright cho Java, HtmlUnit, Apache Nutch và các tùy chọn API.

Anh Tuan
Anh Tuan