Khi bạn thu thập dữ liệu từ các trang web quy mô lớn, ít có 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à một người quét 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 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, ít có 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à một người quét 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 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 chân chính cũng phải trải qua những khó khăn khi đối đầu 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à người quét web hay không, đó sẽ là mục tiêu của bài viết này. Nhưng trước tiên, chúng ta hãy đi sâu vào 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ể có thể làm gián đoạn các scraper trong khi trích xuất dữ liệu với số lượng lớn. Để vượt 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 để vượt 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 dưới dạng lưu lượng truy cập tự nhiên.
CAPTCHA là viết tắt của Totally Automated Public Turing Test để phân biệt máy tính và con người. Đó 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ùng của từ viết tắt này, Kiểm tra Turing có nghĩa là gì - tốt, đâ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 hoặc 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ệ các máy chủ web khỏi các cuộc tấn công vũ phu, DDoS và trong một số tình huống, quét web.
Chúng ta hãy tìm hiểu làm thế nào CAPTCHA phân biệt con người với bot.
Bạn có thể tìm thấy CAPTCHA trong các hình thức của một trang web, bao gồm liên hệ, đăng ký, nhận xét, đăng ký hoặc biểu mẫu thanh toán.
CAPTCHA truyền thống bao gồm một hình ảnh với các chữ cái, số 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 theo sau. Quá trình xác định ký tự này dễ dàng 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à làm cho bot khó xác định các ký tự hơn. Ngược lại, con người có thể giải thích và chặn các ký tự ở nhiều định dạng khác nhau, chẳng hạn như phông chữ, chữ viết tay khác nhau, v.v. Phải nói rằng, không phải mọi người đều có thể giải quyết CAPTCHA trong lần thử đầu tiên. Theo nghiên cứu, 8% người dùng sẽ gõ sai trong lần thử đầu tiên của họ, trong khi 29% thất bại 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 học máy trong những năm qua. Kết quả là, 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à một dịch vụ miễn phí mà Google cung cấp. Nó yêu cầu người dùng đánh dấu vào các hộp thay vì nhập văn bản, giải câu đố hoặc phương trình toán học.
Một 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 trong thế giới thực như đèn giao thông trên đường 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 xét nghiệm ReCAPTCHA quan trọng để xác minh xem bạn có phải là con người hay không:
Đây là những ReCAPTCHA yêu cầu người dùng đánh dấu vào hộp kiểm, "Tôi không phải là robot" như trong hình trên. Mặc dù có vẻ như bằng mắt thường rằng ngay cả một bot cũng có thể hoàn thành thử nghiệm này, một số yếu tố được tính đến:
Nếu ReCAPTCHA không xác minh được rằng bạn là con người, nó sẽ đưa ra cho bạn một thách thức khác.
Các ReCAPTCHA này cung cấp cho người dùng chín hoặc mười sáu hình ảnh vuông như bạn có thể thấy trong hình trên. Mỗi ô 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 ô vuông đại diện cho các đối tượng, động vật, cây cối, phương tiện hoặc đèn giao thông cụ thể.
Nếu lựa chọn của người dù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 thử nghiệm, 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ó khăn hơn.
Bạn có biết rằng ReCAPTCHA có thể xác minh xem bạn có phải là con 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 người dùng nào?
Nó chắc chắn làm bằng cách 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 tình huống, 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 làm như vậy sẽ trở lại bất kỳ phương pháp nào trong hai phương pháp đã đề cập trước đó.
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 như vậy bao gồm các yêu cầu không giới hạn trong vòng vài giây và nhấp vào các liên kết với tỷ lệ cao hơn nhiều so với con người.
Sau đó, một số trang web sẽ tự động có CAPTCHA tại chỗ để bảo vệ hệ thống của họ.
Theo như ReCAPTCHA có liên quan, 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à chuyển động chuột, lịch sử duyệt web và theo dõi cookie.
Bây giờ bạn đã có một cái nhìn tổng quan rõ ràng về CAPTCHA và Rechaptcha là gì, cách chúng hoạt động và điều gì kích hoạt chúng. Bây giờ là lúc để xem xét CAPTCHA ảnh hưởng đến việc quét web như thế nào.
CAPTCHA có thể cản trở việc quét web vì các bot tự động thực hiện hầu hết các hoạt động cạo. Tuy nhiên, đừng nản lòng. Như đã đề cập ở đầu bài viết này, có nhiều cách để vượt qua CAPTCHA khi quét web. Trước khi chúng tôi đến với họ, chúng ta hãy đi sâu vào sự chú ý của chúng tôi đến những gì bạn cần biết trước khi bạn cạo.
Trước hết, bạn phải đảm bảo rằng bạn không cho phép trình quét / trình thu thập thông tin web của mình gửi quá nhiều yêu cầu trong một khoảng thời gian ngắn. Hầu hết các trang web đã đề cập trong các trang điều khoản và điều kiện của họ có bao nhiêu yêu cầu mà trang web cho phép. Hãy chắc chắn đọc chúng trước khi bắt đầu cạo.
Khi bạn kết nối với một trang web, bạn 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 quét / 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 cạp của bạn thực hiện. Sau đó, nó sẽ xuất hiện với trang web mục tiêu vì nó đang nhận được nhiều yêu cầu từ các thiết bị khác nhau. Đọc ở đây để biết thêm thông tin về tiêu đề HTTP.
Một thực tế khác bạn nên biết là trang web mục tiêu chưa đưa địa chỉ IP của bạn vào danh sách đen. Họ có khả năng đư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 bằng trình cạp/trình thu thập thông tin của mình.
Để khắc phục sự cố 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.
Xoay các tiêu đề HTTP và proxy (nhiều hơn 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 cạo mà không bị gián đoạn từ CAPTCHA. Phải nói rằng bạn phải đảm bảo rằng bạn không làm tổn hại đến hiệu suất của trang web bằng bất kỳ phương tiện 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 việc đăng ký, thay đổi mật khẩu, biểu mẫu thanh toán, v.v. Nó chỉ có thể giúp bạn khắc phục các ảnh chụp mà các trang web kích hoạt do có hành vi bot. Để tránh CAPTCHA trong các hình thức như vậy, chúng tôi sẽ xem xét các bộ giải CAPTCHA trong phần sắp tới.
Ngoài các yếu tố chính trên, bạn cần biết các CAPTCHA dưới đây khi quét web bằng bot:
Honeypots-Honeypot sẽ là một loại CAPTCHA được đặt trong một 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 với CSS.So khi một bot tương tác với nó chắc chắn đã báo cáo chính nó là một bot. Vì vậy, trước khi làm cho bot của bạn cạo nội dung, hãy đảm bảo rằng các thuộc tính CSS của phần tử được hiển thị.
Word/Match CAPTCHA-Đây là những 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 quyết.
Đăng nhập mạng xã hội – Ví dụ: một số trang web yêu cầu bạn đăng nhập bằng tài khoản Facebook của mình. Tuy nhiên, chúng không phổ biến vì hầu hết các quản trị viên đều biết rằng mọi người sẽ miễn cưỡng ký chúng bằng tài khoản truyền thông xã hội của họ.
Theo dõi thời gian – Các CAPTCHA này giám sát 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à con người hay bot.
Như đã đề cập trong phần trước, bạn cần xoay vòng proxy mỗi khi gửi yêu cầu đến trang web đích. Đó là một cách để tránh CAPTCHA kích hoạt trong khi bạn cạo. Trong những trường hợp này, bạn cần sử dụng proxy IP khu dân cư sạch.
Khi bạn xoay vòng proxy, trang web mục tiêu sẽ khó xác định 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ì của riêng bạn.
Vì bạn sẽ sử dụng trình quét để quét web, bạn sẽ cần ngụy trang tác nhân người dùng thành trình duyệt web phổ biến hoặc bot được hỗ trợ — các bot như bot công cụ tìm kiếm mà các trang web nhận ra.
Chỉ thay đổi tác nhân người dùng sẽ không đủ vì bạn sẽ cần phải có một 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ẽ dẫn đến việc trang web mục tiêu xem 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.
Như một thực tiễn tốt nhất cho bước này, sẽ rất tuyệt nếu giữ một 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 chúng nữa.
Một phương pháp kỹ thuật thấp đơn giản hơn để giải CAPTCHA sẽ 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à đỉnh cao của các công nghệ khác để giải CAPTCHA.
Một số bộ giải CAPTCHA nổi bật hiện đang tồn tại trong ngành là Capsolver và Anti-CAPTCHA.
Khi bạn để scraper của mình truy cập trực tiếp vào URL cứ sau mỗi giây, thì trang web nhận sẽ đáng 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 đề giới thiệu để làm cho nó có vẻ được giới thiệu từ một trang khác. Nó sẽ làm giảm khả năng bị phát hiện như một bot. Ngoài ra, bạn có thể làm cho bot truy cập các trang khác trước khi truy cập liên kết mong muốn.
Honeypots là các yếu tố ẩn trên một 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 đặt để ẩn. Tuy nhiên, không giống như con người, mã nồi mật ong sẽ hiển thị cho các bot khi chúng cạo dữ liệu. Kết quả là họ rơi vào cái bẫy do nồi mật ong đặt ra.
Vì vậy, bạn phải chắc chắn rằng bạn kiểm tra các thuộc tính CSS của tất cả các phần tử trong một trang web không bị ẩn hoặc vô hình trước khi bạn bắt đầu cạo. Chỉ khi bạn chắc chắn rằng không có yếu tố nào bị ẩn, bạn mới đặt bot của mình để cạo.
Bài viết này sẽ cung cấp cho bạn một ý tưởng toàn diện về cách tránh CAPTCHA trong khi quét 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ẽ sử dụng tất cả các kỹ thuật được thảo luận trong bài viết này.