Bỏ để qua phần nội dung

Cách vượt qua sự phát hiện của Cloudflare với Selenium

Bạn đang tìm cách vượt qua sự phát hiện của Cloudflare khi mã hóa bot của mình bằng Python? Sau đó, bạn đang ở trên trang bên phải. Bài viết dưới đây hướng dẫn cách vượt qua Cloudflare bằng Python và Selenium.

Bot web, bao gồm cả công cụ tìm kiếm web, đã tiến bộ rất nhiều trong những năm qua. Và hãy đối mặt với nó; các trang web cũng đang trở nên thông minh hơn ở phát hiện lưu lượng bot. Một trong những yếu tố thay đổi cuộc chơi khiến các nhà phát triển bot phải toát mồ hôi là Hệ thống chống bot của Cloudflare.

Nó hoạt động như một phần mềm trung gian hoặc proxy giữa máy chủ web và phần mềm máy khách. Nếu bạn gửi một yêu cầu web, nó sẽ phải kiểm tra để chắc chắn rằng nó không phải là thư rác và hợp pháp trước khi nó cho phép nó đi qua trang web mục tiêu của bạn.

Người dùng Internet thông thường gặp một chút chậm trễ và nhận được thông báo “đang kiểm tra trình duyệt của bạn trước khi truy cập ….” tin nhắn trên màn hình. Nhưng điều này cuối cùng sẽ qua. Tuy nhiên, nếu bạn đang sử dụng bot, rất có thể bạn sẽ không được phép truy cập. Một số nhà phát triển nghĩ rằng việc sử dụng trình tự động hóa trình duyệt như Selenium cũng sẽ mang lại điều kỳ diệu cho họ.

Thật không may, Cloudflare cũng được xây dựng để phát hiện điều đó. Vậy bạn làm gì, và làm thế nào để bạn bỏ qua phát hiện Cloudflare với tư cách là nhà phát triển bot sử dụng Python và Cloudflare? Trong bài viết này, bạn sẽ được hướng dẫn cách vượt qua sự phát hiện của Cloudflare bằng Python và Selenium.


Tổng quan về Selenium

Tổng quan về Selenium

Trình điều khiển web Selenium là trình tự động hóa trình duyệt. Những gì bạn làm với điều đó là tùy thuộc vào bạn. Một số sử dụng nó để thử nghiệm trang web, một số khác để đóng chai và cạo. Nó là một công cụ đa năng, vì bạn có thể sử dụng nó trong nhiều ngôn ngữ lập trình phổ biến như Python, Java và NodeJS.

Nó cũng hỗ trợ các trình duyệt phổ biến như Chrome, Firefox, Edge và Internet Explorer. Trọng tâm của chúng tôi ở đây là hỗ trợ Python của nó. Trong Python, Selenium là công cụ chính để bot và cạo các trang web phụ thuộc vào kết xuất JavaScript. Những thứ như Scrapy, Requests và Beautifulsoup không phù hợp với những thứ đó.

Tuy nhiên, Selenium chỉ hiệu quả đối với các trang web có hệ thống chống thư rác cơ bản. Với sự trợ giúp của proxy, xóa cookie, đặt độ trễ ngẫu nhiên và một số phương pháp khác, bạn có thể tránh bị phát hiện và chặn.

Nhưng khi một trang web được bảo vệ bởi các hệ thống chống thư rác như Cloudflare và Akamai, Selenium trở nên vô hiệu. Điều này là do có các con trỏ mặc định mà hệ thống chống thư rác sử dụng để phát hiện bot mà công cụ Selenium mặc định có.


Cách vượt qua Cloudflare bằng Selenium và Python

Với các bước phù hợp, Selenium có thể vượt qua Cloudflare một cách dễ dàng. Trước khi đi sâu vào vấn đề đó, chúng ta hãy xem Cloudflare hoạt động tốt như thế nào trong việc phát hiện các bot được mã hóa bằng Python và Selenium. Để làm điều này, chúng tôi sẽ viết mã một bot đơn giản cố gắng truy cập rayobyte.com.

Tổng quan về Rayobyte

Rayobyte là nhà cung cấp proxy được bảo vệ bởi Cloudflare. Nếu bạn thử truy cập bằng trình duyệt, trình duyệt của bạn cần được kiểm tra trước khi bạn được cấp quyền truy cập. Chúng tôi sẽ sử dụng điều này để kiểm tra mức độ hiệu quả của Cloudflare và sau đó mã hóa một bot khác sẽ kết hợp các biện pháp để vượt qua nó.


Bước 1: Cài đặt các công cụ cần thiết

Để viết mã bot bằng Python, bạn cần cài đặt Python. Đối với dự án này, bạn cũng cần cài đặt Selenium.

  • Python

Tổng quan về Python

Đối với hầu hết các hệ thống, Python đã được cài đặt sẵn. Tuy nhiên, phiên bản được cài đặt là Python 2, được sử dụng vì lý do cũ. Bạn sẽ cần cài đặt Python 3 để sử dụng Selenium. Tham quan trang tải xuống chính thức của Python để cài đặt nó trên hệ thống của bạn. Nó có sẵn cho Windows, macOS và Linux. Để xác minh xem quá trình cài đặt đã được thực hiện thành công hay chưa, hãy chạy lệnh bên dưới trong dấu nhắc lệnh của bạn.

“trăn —phiên bản”
  • Selenium

Công cụ selen

Selenium là một công cụ bot hoàn chỉnh. Nó tự động hóa trình duyệt, cho phép bạn truy cập các trang, nhấp vào nút, cuộn và thậm chí điền vào biểu mẫu cũng như thực hiện bất kỳ hành động nào mà bạn có thể thực hiện theo cách thủ công. Selenium là một công cụ của bên thứ ba.

Để nó hoạt động, bạn cần cài đặt nó, sau đó tải xuống và đặt trình điều khiển cụ thể cho trình duyệt mà bạn muốn tự động hóa trong đường dẫn.

Đối với hướng dẫn này, chúng tôi sẽ sử dụng Chrome vì đây là trình duyệt phổ biến nhất hiện có.

Để cài đặt Selenium, hãy chạy

"pip cài đặt selen"

lệnh trong dấu nhắc lệnh. Khi quá trình tải xuống hoàn tất, giờ đây bạn có thể truy cập trang tải xuống trình điều khiển web Chrome. C

kiểm tra phiên bản Chrome bạn có và tải xuống trình điều khiển dành riêng cho phiên bản Chrome của bạn. Nếu bạn tải phiên bản khác, nó sẽ không hoạt động.

Sau khi tải xuống, giải nén nội dung trong một thư mục. Thư mục đó sẽ là thư mục làm việc cho dự án này.


Bước 2: Gửi yêu cầu tới trang web mà không cần thủ thuật Bypass

Trang web mục tiêu của chúng tôi là rayobyte.com. Chúng tôi sẽ viết mã một tập lệnh sẽ gửi yêu cầu đến trang web này và xem phản hồi mà chúng tôi nhận được.

Dưới đây là mã. Nó khá đơn giản. Cái yêu cầu nhiều dòng mã hơn thực sự là cái có mã để bỏ qua Cloudflare.

Sử dụng mã bên dưới trong Python IDLE yêu thích của bạn. Trong trường hợp của tôi, tôi đang sử dụng Pycharm, hiện là IDLE tốt nhất trên thị trường — mặc dù điều này còn gây tranh cãi. Vấn đề chính với nó là nó được trả tiền.

từ Selenium.webdriver nhập trình duyệt Chrome = Chrome() browser.get("https://rayobyte.com")

Đoạn mã trên sẽ khởi chạy trình duyệt Chrome trên hệ thống của bạn và sẽ cố gắng truy cập trang chủ của trang web Rayobyte.

Tuy nhiên, thay vì truy cập trang, nó sẽ chỉ lặp lại và duy trì trên trang xác minh Cloudflare. Dưới đây là một ảnh chụp màn hình của trang trông như thế nào.

Nếu bạn kiểm tra mã tốt, bạn sẽ thấy rằng tôi đã không đóng nó. Điều này là để cho phép tôi xem liệu cuối cùng nó có cho phép tải trang hay không. Nhưng điều đó sẽ không bao giờ xảy ra. Bạn nên đóng trình duyệt tự động.

Như bạn đã thấy, không thể sử dụng riêng Selenium để vượt qua Cloudflare. Nếu bạn muốn vượt qua Cloudflare, bạn phải sử dụng một số thủ thuật. Bước tiếp theo sẽ chỉ cho bạn cách sử dụng cùng Selenium và Python để bỏ qua Cloudflare.


Bước 3: Sử dụng Plugin để vượt qua Cloudflare

sử dụng Plugin để vượt qua Cloudflare

Như bạn có thể thấy ở trên, Cloudflare phát hiện các tập lệnh Selenium dưới dạng bot. Sử dụng proxy sẽ không giúp bạn trong trường hợp này. Bạn cần các phương pháp khác.

Cách tốt nhất để vượt qua Cloudflare bằng Selenium và python là sử dụng thư viện có tên Trình điều khiển Chrome không bị phát hiện. Bạn có thể cài đặt cái này bằng cách sử dụng

"pip cài đặt không bị phát hiện-chromedriver"

Plugin này chỉ hoạt động nếu bạn muốn thúc đẩy/tự động hóa Chrome. Hiện tại, không có tùy chọn nào để tự động hóa các trình duyệt khác. Nếu bạn đã cài đặt thư viện này, tất cả những gì bạn phải làm là thay thế lớp trình duyệt mặc định trong Selenium bằng lớp này và bạn đã sẵn sàng.

Dưới đây là đoạn mã chỉ cho bạn cách sử dụng chính xác Undetected ChromeDriver để bỏ qua Cloudflare.

nhập undetected_chromedriver dưới dạng uc từ selenium.webdriver.support.ui

Chỉ cần sử dụng thư viện undetected-chromedriver, bạn sẽ thấy rằng mình có thể tránh bị Cloudflare phát hiện. Điều này sẽ cho phép bạn tự động hóa các tác vụ của mình hoặc thậm chí tìm kiếm dữ liệu trên web mà không gặp sự cố nào.


Nơi đặt proxy để vượt qua Cloudflare

Nơi đặt proxy để vượt qua Cloudflare

Nếu bạn nhìn vào đoạn mã trên, bạn sẽ thấy rằng proxy không được sử dụng trong toàn bộ quá trình. Bây giờ bạn bắt đầu tự hỏi liệu bạn có cần proxy để vượt qua Cloudflare hay không. Lý do rất đơn giản — chúng tôi chỉ gửi một yêu cầu. Nếu bạn chỉ cần gửi một vài yêu cầu, bạn không cần sử dụng proxy để làm điều đó.

Tuy nhiên, nếu bạn sẽ gửi nhiều yêu cầu giống như hầu hết các bot, thì bạn cần sử dụng proxy.

Điều này là do, giống như hầu hết các hệ thống chống bot, theo dõi IP vẫn là một trong những phần chính của dịch vụ Cloudflare. Và khi nhận được quá nhiều yêu cầu từ cùng một IP, việc có dấu chân của bot hay không cũng không quan trọng; IP như vậy sẽ bị coi là đáng ngờ và do đó, các yêu cầu tiếp theo sẽ bị chặn.

Chúng tôi khuyên bạn nên sử dụng proxy dân dụng để bỏ qua Cloudflare. Một số nhà cung cấp proxy tốt nhất cho những thứ này bao gồm Bright Data, Smartproxy và Soax. Nếu bạn không cần duy trì phiên, sử dụng proxy luân phiên từ các nhà cung cấp này là cách tốt nhất để bỏ qua Cloudflare.


Câu Hỏi Thường Gặp

H. Proxy có bảo vệ chống lại sự tắc nghẽn của Cloudflare không?

Không họ không. Bạn có thể thấy một số proxy tự quảng cáo là proxy để vượt qua Cloudflare. Thực tế trên sân thì ngược lại. Chỉ riêng proxy sẽ không bảo vệ bạn khỏi sự tắc nghẽn của Cloudflare. Bạn cần sử dụng các công cụ có thể bắt chước trình duyệt của người dùng thông thường và đó là lúc sử dụng ChromeDriver không bị phát hiện.

Proxy được yêu cầu khi bạn cần gửi nhiều yêu cầu qua Cloudflare và việc không sử dụng proxy có nguy cơ vấp phải hệ thống chặn và theo dõi IP của họ. Proxy là cần thiết trong nhiều trường hợp, nhưng chúng không phải là công cụ duy nhất bạn cần để vượt qua Cloudflare bypass.

H. Cloudflare ngăn chặn bot hiệu quả như thế nào?

Nếu trang web mục tiêu của bạn có Cloudflare bảo vệ nó, thì bạn thực sự cần phải lo lắng. Điều này là do Cloudflare có một số con số thú vị sẽ khiến bạn sợ hãi mà không cần cố gắng bỏ qua chúng.

Theo dữ liệu có sẵn, các trang web được bảo vệ bởi Cloudflare thông báo giảm 65% yêu cầu trước khi thiết lập Cloudflare. Đây là một số công việc tuyệt vời mà Cloudflare đang làm ngay tại đó. Nó cũng giúp các trang web tải nhanh hơn và sử dụng ít băng thông hơn. Tuy nhiên, với các kỹ thuật và công cụ phù hợp, bạn vẫn có thể vượt qua nó và làm cho nó kém hiệu quả hơn.

Các hệ thống chống bot như Cloudflare bảo vệ các trang web khỏi các cuộc tấn công DDoS và các hình thức spam khác. Bỏ qua chúng không phải là bất hợp pháp, mặc dù các trang web định cấu hình chúng để bảo vệ hệ thống và cơ sở dữ liệu của họ.

Tuy nhiên, những gì bạn làm sau khi bỏ qua chúng có thể khiến bạn gặp rắc rối về pháp lý. Nếu bạn chỉ cần tự động hóa các tác vụ của mình mà không gây ra bất kỳ tác hại nào cho trang web bằng cách áp đảo trang web với các yêu cầu, thì bạn vẫn ở trong khuôn khổ pháp luật.

Chúng tôi không phải là cố vấn pháp lý có thẩm quyền và do đó, chúng tôi khuyên bạn nên tìm kiếm lời khuyên pháp lý từ những người hành nghề có thẩm quyền. Không có gì bạn đọc ở đây nên được xem hoặc coi là lời khuyên pháp lý.


Kết luận

Là một nhà phát triển bot, các hệ thống chống bot như Cloudflare là một trong những cơn ác mộng mà bạn sẽ phải đối mặt với nó, vì chúng có thể làm bạn nản lòng. Điều này đặc biệt đúng nếu bạn không có kinh nghiệm bỏ qua chúng.

Là người mới bắt đầu, bạn có thể nghĩ rằng sử dụng Selenium là một cách dễ dàng cho bạn vì Selenium tự động hóa các trình duyệt và kết xuất JS.

Tuy nhiên, Cloudflare dường như đã nắm giữ các bot dựa trên Selenium. Với sự trợ giúp của công cụ ChromeDriver không bị phát hiện được mô tả trong bài viết, bạn sẽ có thể vượt qua nó mà không gặp vấn đề gì.

Tham gia vào cuộc đối thoại

Chúng tôi sẽ không công khai email của bạn. Các ô đánh dấu * là bắt buộc *