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

Nhận dạng ảnh bằng AI: Kiến thức cơ bản và cách giải quyết
Nhận dạng ảnh bằng AI: Kiến thức cơ bản và cách giải quyết

Tạm biệt những khó khăn với CAPTCHA hình ảnh – CapSolver Vision Engine giải quyết chúng nhanh chóng, thông minh và dễ dàng!

Logo of CapSolver

Anh Tuan

25-Apr-2025

Các User Agent Tốt Nhất để Scrape Web & Cách Sử Dụng Chúng
Các User Agent Tốt Nhất để Scrape Web & Cách Sử Dụng Chúng

Hướng dẫn về các user agent tốt nhất để scrape web và cách sử dụng hiệu quả để tránh bị phát hiện. Khám phá tầm quan trọng của user agent, các loại và cách triển khai chúng để scrape web liền mạch và không bị phát hiện.

Logo of CapSolver

Anh Tuan

07-Mar-2025

Cách giải quyết thử thách Cloudflare JS để thu thập dữ liệu web và tự động hóa
Cách giải quyết thử thách Cloudflare JS để thu thập dữ liệu web và tự động hóa

Tìm hiểu cách giải quyết thử thách JavaScript của Cloudflare để thu thập dữ liệu web và tự động hóa liền mạch. Khám phá các chiến lược hiệu quả, bao gồm sử dụng trình duyệt không đầu, luân phiên proxy, và tận dụng khả năng giải quyết CAPTCHA nâng cao của CapSolver.

Cloudflare
Logo of CapSolver

Anh Tuan

05-Mar-2025

Dấu vân tay TLS của Cloudflare: Nó là gì và cách giải quyết
Dấu vân tay TLS của Cloudflare: Nó là gì và cách giải quyết

Tìm hiểu về việc Cloudflare sử dụng dấu vân tay TLS để bảo mật, cách nó phát hiện và chặn bot, và khám phá các phương pháp hiệu quả để giải quyết vấn đề này cho các tác vụ thu thập dữ liệu web và duyệt web tự động.

Cloudflare
Logo of CapSolver

Anh Tuan

28-Feb-2025

Tại sao tôi cứ bị yêu cầu xác minh rằng tôi không phải là người máy?
Tại sao tôi cứ bị yêu cầu xác minh rằng tôi không phải là người máy?

Tìm hiểu lý do tại sao Google yêu cầu bạn xác minh rằng bạn không phải là robot và khám phá các giải pháp như sử dụng API của CapSolver để giải quyết các thử thách CAPTCHA một cách hiệu quả.

Logo of CapSolver

Anh Tuan

27-Feb-2025

Cách trích xuất dữ liệu từ trang web được bảo vệ bởi Cloudflare
Cách trích xuất dữ liệu từ trang web được bảo vệ bởi Cloudflare

Trong hướng dẫn này, chúng ta sẽ khám phá các kỹ thuật đạo đức và hiệu quả để trích xuất dữ liệu từ các trang web được bảo vệ bởi Cloudflare.

Cloudflare
Logo of CapSolver

Anh Tuan

20-Feb-2025