Khi bạn thu thập dữ liệu từ các trang web quy mô lớn, khả năng bạn không phải đối mặt với CAPTCHA để chứng minh rằng bạn là con người là rất thấp. Là một người thu thập dữ liệu web, bạn có thể đã biết lý do tại sao các chuyên gia an ninh mạng buộc phải phát minh ra chúng. Chúng là kết quả của việc các bot của bạn tự động hóa các yêu cầu trang web vô tận để truy cập chúng.
Khi bạn thu thập dữ liệu từ các trang web quy mô lớn, khả năng bạn không phải đối mặt với CAPTCHA để chứng minh rằng bạn là con người là rất thấp. Là một trình thu thập dữ liệu web, bạn có thể đã biết lý do tại sao các chuyên gia an ninh mạng buộc phải phát minh ra chúng. Chúng là kết quả của việc các bot của bạn tự động hóa các yêu cầu trang web vô tận để truy cập chúng. Vì vậy, ngay cả những người dùng thực sự cũng phải trải qua nỗi đau khi đối mặt với CAPTCHA xuất hiện dưới nhiều hình thức khác nhau. Tuy nhiên, bạn có thể bỏ qua CAPTCHA cho dù bạn có phải là trình thu thập dữ liệu web hay không, đó sẽ là mục tiêu của bài viết này. Nhưng trước tiên, hãy cùng tìm hiểu CAPTCHA là gì.
CAPTCHA thường được kích hoạt để phát hiện lưu lượng truy cập không tự nhiên trong trang web. Vì vậy, điều này có thể làm gián đoạn các trình thu thập dữ liệu trong khi trích xuất dữ liệu với số lượng lớn. Để bỏ qua hạn chế này, người dùng thích một giải pháp có thể bẻ khóa tất cả các mã CAPTCHA này và truy cập trang web như một con người thực sự. Một giải pháp để bỏ qua captcha là Capsolver . Sử dụng proxy với các yêu cầu web cũng sẽ giúp người dùng xuất hiện như một lưu lượng truy cập tự nhiên.
CAPTCHA là viết tắt của Completely Automated Public Turing Test to tell Computers and Humans Apart (Kiểm tra Turing công khai hoàn toàn tự động để phân biệt máy tính và con người). Đây là một từ viết tắt khá dài, phải không? Bây giờ bạn có thể tự hỏi phần cuối của từ viết tắt này, Turing Test có nghĩa là gì – đúng vậy, đó là một bài kiểm tra đơn giản để xác định xem con người hay bot đang tương tác với trang web hay máy chủ web.
Xét cho cùng, CAPTCHA phân biệt con người với bot, giúp các nhà phân tích an ninh mạng bảo vệ máy chủ web khỏi các cuộc tấn công bằng cách dùng vũ lực, DDoS và trong một số trường hợp là thu thập dữ liệu từ web.
Hãy cùng tìm hiểu xem CAPTCHA phân biệt con người với bot như thế nào.
Bạn có thể tìm thấy CAPTCHA trong các biểu mẫu của trang web, bao gồm biểu mẫu liên hệ, đăng ký, bình luận, đăng ký hoặc thanh toán.
CAPTCHA truyền thống bao gồm một hình ảnh với các chữ cái, số bị kéo dài hoặc mờ, hoặc cả hai trong một hộp có màu nền hoặc nền trong suốt. Sau đó, bạn phải xác định các ký tự và nhập chúng vào trường văn bản sau. Quá trình xác định ký tự này dễ hơn đối với con người nhưng hơi phức tạp đối với bot.
Ý tưởng làm mờ hoặc bóp méo văn bản CAPTCHA là để bot khó nhận dạng các ký tự hơn. Ngược lại, con người có thể diễn giải và chặn các ký tự ở nhiều định dạng khác nhau, chẳng hạn như phông chữ khác nhau, chữ viết tay, v.v. Tuy nhiên, không phải con người nào cũng có thể giải CAPTCHA ngay lần thử đầu tiên. Theo nghiên cứu, 8% người dùng sẽ nhập sai ở lần thử đầu tiên, trong khi 29% sẽ trượt nếu CAPTCHA phân biệt chữ hoa chữ thường.
Mặt khác, một số bot tiên tiến có thể chặn các chữ cái bị bóp méo với sự hỗ trợ của máy học trong nhiều năm. Do đó, một số công ty như Google đã thay thế CAPTCHA thông thường bằng CAPTCHA tinh vi. Một ví dụ như vậy là ReCAPTCHA mà bạn sẽ khám phá trong phần tiếp theo.
ReCAPTCHA là dịch vụ miễn phí do Google cung cấp. Dịch vụ này yêu cầu người dùng đánh dấu vào ô thay vì nhập văn bản, giải câu đố hoặc phương trình toán học.
ReCAPTCHA điển hình tiên tiến hơn các dạng CAPTCHA thông thường. Nó sử dụng hình ảnh và văn bản thực tế như đèn giao thông trên phố, văn bản từ báo cũ và sách in. Do đó, người dùng không phải dựa vào CAPTCHA cũ với văn bản mờ và méo mó.
Có ba loại kiểm tra ReCAPTCHA quan trọng để xác minh bạn có phải là con người hay không:
Đây là ReCAPTCHA yêu cầu người dùng đánh dấu vào ô "Tôi không phải là rô-bốt" như trong hình trên. Mặc dù bằng mắt thường, ngay cả một con bot cũng có thể hoàn thành bài kiểm tra này, nhưng có một số yếu tố được tính đến:
Nếu ReCAPTCHA không xác minh được bạn là người, nó sẽ đưa ra một thử thách khác.
Những ReCAPTCHA này cung cấp cho người dùng chín hoặc mười sáu hình vuông như bạn có thể thấy trong hình trên. Mỗi hình vuông đại diện cho một phần của hình ảnh lớn hơn hoặc các hình ảnh khác nhau. Người dùng phải chọn các hình vuông đại diện cho các đối tượng cụ thể, động vật, cây cối, phương tiện hoặc đèn giao thông.
Nếu lựa chọn của người dùng trùng khớp với lựa chọn của những người dùng khác đã thực hiện cùng một bài kiểm tra, người dùng sẽ được xác minh. Nếu không, ReCAPTCHA sẽ đưa ra một bài kiểm tra khó hơn.
Bạn có biết ReCAPTCHA có thể xác minh bạn có phải là người hay không mà không cần sử dụng hộp kiểm hoặc bất kỳ tương tác nào với người dùng không?
Chắc chắn là có khi xem xét lịch sử tương tác của người dùng với các trang web và hành vi chung của người dùng khi trực tuyến. Trong hầu hết các trường hợp, dựa trên các yếu tố này, hệ thống sẽ có thể xác định xem bạn có phải là bot hay không.
Nếu không thực hiện, bạn sẽ phải quay lại sử dụng một trong hai phương pháp đã đề cập ở trên.
CAPTCHA có thể được kích hoạt nếu một trang web phát hiện các hoạt động bất thường giống với hành vi của bot; Hành vi bất thường này bao gồm các yêu cầu không giới hạn trong vài giây và nhấp vào liên kết với tốc độ cao hơn nhiều so với con người.
Sau đó, một số trang web sẽ tự động áp dụng CAPTCHA để bảo vệ hệ thống của họ.
Về ReCAPTCHA, không rõ chính xác điều gì kích hoạt chúng. Tuy nhiên, nguyên nhân chung là do chuyển động của chuột, lịch sử duyệt web và theo dõi cookie.
Bây giờ bạn đã có cái nhìn tổng quan rõ ràng về CAPTCHA và Rechaptcha là gì, chúng hoạt động như thế nào và những gì kích hoạt chúng. Bây giờ là lúc tìm hiểu cách CAPTCHA ảnh hưởng đến việc thu thập dữ liệu web.
CAPTCHA có thể cản trở việc thu thập dữ liệu trên web vì các bot tự động thực hiện hầu hết các hoạt động thu thập dữ liệu. Tuy nhiên, đừng nản lòng. Như đã đề cập ở đầu bài viết này, có nhiều cách để khắc phục CAPTCHA khi thu thập dữ liệu trên web. Trước khi tìm hiểu về chúng, chúng ta hãy cùng tìm hiểu những điều bạn cần lưu ý trước khi thu thập dữ liệu.
Trước hết, bạn phải đảm bảo rằng bạn không cho phép trình thu thập dữ liệu/trình thu thập dữ liệu web của mình gửi quá nhiều yêu cầu trong một thời gian ngắn. Hầu hết các trang web đều đề cập trong các trang điều khoản và điều kiện của họ về số lượng yêu cầu mà trang web cho phép. Hãy đảm bảo đọc chúng trước khi bắt đầu thu thập dữ liệu.
Khi bạn kết nối với một trang web, bạn sẽ gửi thông tin về thiết bị của mình đến trang web kết nối. Họ có thể sử dụng thông tin này để tùy chỉnh nội dung theo thông số kỹ thuật của thiết bị và theo dõi số liệu của bạn. Vì vậy, khi họ phát hiện ra rằng các yêu cầu đến từ cùng một thiết bị, bất kỳ yêu cầu nào bạn gửi sau đó sẽ bị chặn.
Vì vậy, nếu bạn tự phát triển trình thu thập dữ liệu/trình thu thập thông tin web, bạn sẽ có thể thay đổi thông tin tiêu đề cho mỗi yêu cầu mà trình thu thập dữ liệu của bạn thực hiện. Sau đó, nó sẽ xuất hiện trên trang web mục tiêu khi nó đang nhận được nhiều yêu cầu từ các thiết bị khác nhau. Đọc tại đây để biết thêm thông tin về tiêu đề HTTP.
Một sự thật khác mà bạn nên biết là trang web mục tiêu không đưa địa chỉ IP của bạn vào danh sách đen. Họ có thể đưa địa chỉ IP của bạn vào danh sách đen khi bạn gửi quá nhiều yêu cầu với trình thu thập dữ liệu/trình thu thập thông tin của mình.
Để khắc phục vấn đề trên, bạn có thể sử dụng máy chủ proxy vì nó che giấu địa chỉ IP của bạn.
Việc xoay vòng các tiêu đề HTTP và proxy (sẽ nói thêm về điều này trong phần tiếp theo) với một nhóm sẽ đảm bảo rằng nhiều thiết bị truy cập trang web từ các vị trí khác nhau. Vì vậy, bạn sẽ có thể tiếp tục thu thập mà không bị gián đoạn bởi CAPTCHA. Tuy nhiên, bạn phải đảm bảo rằng bạn không gây hại cho hiệu suất của trang web bằng bất kỳ cách nào.
Tuy nhiên, bạn cần lưu ý rằng proxy sẽ không giúp bạn vượt qua CAPTCHA trong các biểu mẫu đăng ký, thay đổi mật khẩu, thanh toán, v.v. Nó chỉ có thể giúp bạn vượt qua các lần bắt giữ mà các trang web kích hoạt do có hành vi của bot. Để tránh CAPTCHA trong các biểu mẫu như vậy, chúng tôi sẽ xem xét các trình giải CAPTCHA trong phần sắp tới.
Ngoài các yếu tố chính nêu trên, bạn cần biết các CAPTCHA dưới đây khi thu thập dữ liệu web bằng bot:
Honeypots- Honeypot sẽ là một loại CAPTCHA được bao bọc trong trường biểu mẫu HTML hoặc liên kết, nhưng khả năng hiển thị của nó bị ẩn bằng CSS. Vì vậy, khi một bot tương tác với nó, nó chắc chắn đã báo cáo rằng nó là một bot. Vì vậy, trước khi để bot của bạn thu thập nội dung, hãy đảm bảo rằng các thuộc tính CSS của phần tử có thể nhìn thấy được.
Từ/Match CAPTCHA-Đây là CAPTCHA trong các phương trình toán học như giải "3+7" chẳng hạn. Cũng có thể có các câu đố chữ để giải.
Đăng nhập bằng phương tiện truyền thông xã hội – Một số trang web yêu cầu bạn phải đăng nhập bằng tài khoản Facebook của mình, ví dụ. Tuy nhiên, chúng không phổ biến vì hầu hết người quản lý đều biết rằng mọi người sẽ không muốn đăng nhập bằng tài khoản phương tiện truyền thông xã hội của họ.
Theo dõi thời gian – Các CAPTCHA này theo dõi tốc độ bạn thực hiện một hành động cụ thể, chẳng hạn như điền vào biểu mẫu để xác định xem đó là người hay bot.
Như đã đề cập ở phần trước, bạn cần luân phiên proxy mỗi lần gửi yêu cầu đến trang web mục tiêu. Đây là một cách để tránh CAPTCHA kích hoạt khi bạn quét. Trong những trường hợp này, bạn cần sử dụng proxy IP dân dụng sạch.
Khi bạn xoay vòng proxy, trang web mục tiêu sẽ khó xác định được dấu chân IP của bạn. Điều này là do, đối với mỗi yêu cầu, địa chỉ IP của proxy sẽ xuất hiện thay vì địa chỉ IP của bạn.
Vì bạn sẽ sử dụng trình thu thập dữ liệu để thu thập dữ liệu web nên bạn sẽ cần phải ngụy trang tác nhân người dùng thành một trình duyệt web phổ biến hoặc bot được hỗ trợ—các bot như bot của công cụ tìm kiếm mà các trang web có thể nhận dạng.
Chỉ thay đổi tác nhân người dùng sẽ không đủ vì bạn sẽ cần phải có danh sách các chuỗi tác nhân người dùng và sau đó xoay vòng chúng. Việc xoay vòng này sẽ khiến trang web mục tiêu nhìn thấy bạn như một thiết bị khác trong khi thực tế, một thiết bị đang gửi tất cả các yêu cầu.
Để thực hành tốt nhất cho bước này, bạn nên lưu giữ cơ sở dữ liệu về các tác nhân người dùng thực. Ngoài ra, hãy xóa cookie khi bạn không còn cần đến chúng nữa.
Một phương pháp kỹ thuật thấp đơn giản hơn để giải quyết CAPTCHA là sử dụng dịch vụ giải CAPTCHA. Họ sử dụng Trí tuệ nhân tạo (AI), Học máy (MI) và sự kết hợp của các công nghệ khác để giải quyết CAPTCHA.
Một số công cụ giải CAPTCHA nổi bật hiện có trong ngành là Capsolver và Anti-CAPTCHA .
Khi bạn cho trình thu thập dữ liệu của mình truy cập trực tiếp vào URL mỗi giây, thì trang web nhận sẽ bị nghi ngờ. Kết quả là, trang web mục tiêu sẽ kích hoạt CAPTCHA.
Để tránh tình huống như vậy, bạn có thể đặt tiêu đề người giới thiệu để làm cho nó có vẻ như được giới thiệu từ một trang khác. Điều này sẽ làm giảm khả năng bị phát hiện là bot. Ngoài ra, bạn có thể khiến bot truy cập các trang khác trước khi truy cập liên kết mong muốn.
Honeypot là các thành phần ẩn trên trang web mà các chuyên gia bảo mật sử dụng để bẫy bot hoặc kẻ xâm nhập. Mặc dù trình duyệt hiển thị HTML của nó, các thuộc tính CSS của nó được thiết lập để ẩn. Tuy nhiên, không giống như con người, mã honey pot sẽ hiển thị cho bot khi chúng thu thập dữ liệu. Kết quả là, chúng đã rơi vào cái bẫy do honeypot đặt ra.
Vì vậy, bạn phải đảm bảo rằng bạn kiểm tra các thuộc tính CSS của tất cả các thành phần trong trang web không bị ẩn hoặc vô hình trước khi bạn bắt đầu thu thập. Chỉ khi bạn chắc chắn rằng không có thành phần nào bị ẩn, bạn mới thiết lập bot để thu thập.
Bài viết này sẽ cung cấp cho bạn ý tưởng toàn diện về cách tránh CAPTCHA khi thu thập dữ liệu trên web. Tránh CAPTCHA có thể là một quá trình phức tạp. Tuy nhiên, với việc sử dụng các kỹ thuật cụ thể được thảo luận trong bài viết này, bạn có thể phát triển bot theo cách tránh CAPTCHA.
Chúng tôi hy vọng bạn sẽ tận dụng được tất cả các kỹ thuật được thảo luận trong bài viết này.