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

Lỗi Cloudflare 1020: Nó là gì và cách tránh khi quét web

  • by
  • Blog
  • Đã đọc 6 phút

Nếu bạn đã từng cố gắng truy cập hoặc tìm kiếm một trang web và gặp phải trang có nội dung "Lỗi 1020: Truy cập bị từ chối", thì bạn đã gặp phải tính năng bảo vệ bot của Cloudflare. Điều này có thể cực kỳ khó chịu, đặc biệt nếu bạn đang thu thập dữ liệu quan trọng. Nhưng chính xác thì lỗi Cloudflare 1020 là gì, nguyên nhân gây ra lỗi này và làm cách nào để tránh lỗi này để quét trang web thành công?

Trong hướng dẫn chuyên sâu này, chúng tôi sẽ đề cập đến mọi thứ bạn cần biết về lỗi Cloudflare 1020 và chia sẻ các kỹ thuật đã được chứng minh để ngăn nó chặn nỗ lực quét web của bạn. Hãy đi sâu vào!

Lỗi Cloudflare 1020 là gì?

Đầu tiên, điều quan trọng là phải hiểu Cloudflare là gì. Cloudflare là một dịch vụ phổ biến được nhiều trang web sử dụng để cải thiện tính bảo mật, hiệu suất và độ tin cậy. Một tính năng chính là tường lửa và bảo vệ DDoS giúp phân tích lưu lượng truy cập đến và chặn các yêu cầu đáng ngờ.

Khi Cloudflare phát hiện yêu cầu đã vi phạm một trong các quy tắc tường lửa của trang web, nó sẽ chặn yêu cầu đó và trả về lỗi 1020 "Access Denied". Đây là cách Cloudflare bảo vệ các trang web khỏi các bot độc hại, các cuộc tấn công DDoS, quét nội dung và lưu lượng truy cập tự động không mong muốn khác.

Thông báo lỗi đầy đủ bạn sẽ thấy là:
"Truy cập bị từ chối
Mã lỗi 1020
Chuyện gì đã xảy ra?
Trang web này đang sử dụng dịch vụ bảo mật để tự bảo vệ mình khỏi các cuộc tấn công trực tuyến."

Nguyên nhân gây ra lỗi Cloudflare 1020?

Có một số lý do khiến yêu cầu của bạn có thể bị chặn do lỗi 1020, nhưng điều đó thường có nghĩa là Cloudflare đã gắn cờ yêu cầu đó là tự động hoặc có khả năng độc hại. Một số nguyên nhân phổ biến bao gồm:

  • Gửi quá nhiều yêu cầu quá nhanh (tỷ lệ yêu cầu cao)
  • Không sử dụng tiêu đề người dùng hợp pháp (tác nhân người dùng, cookie, người giới thiệu, v.v.)
  • Địa chỉ IP của bạn có tiếng xấu liên quan đến bot/spam
  • Trang yêu cầu hiển thị Javascript nhưng bot của bạn không chạy JS
  • Bạn đang cố truy cập vào một khu vực bị hạn chế (trang đăng nhập, bảng quản trị, v.v.)
  • Chủ sở hữu trang web đã định cấu hình các quy tắc tường lửa nghiêm ngặt mà yêu cầu của bạn kích hoạt

Về cơ bản, nếu yêu cầu của bạn không giống với lưu lượng truy cập thông thường của người dùng từ trình duyệt web thì rất có thể chúng sẽ bị chặn. Khả năng phát hiện bot của Cloudflare khá phức tạp.

Cách khắc phục lỗi Cloudflare 1020

Vì vậy, bạn đang cố gắng loại bỏ một trang web nhưng vẫn gặp phải lỗi 1020 đáng sợ. Bạn giải quyết vấn đề này như thế nào để có thể tiếp tục thu thập dữ liệu? Dưới đây là một số lời khuyên và phương pháp hay nhất.

1. Kiểm tra xem trang web có thể truy cập bình thường không

Trước khi cố gắng vượt qua tính năng bảo vệ bot, trước tiên hãy kiểm tra kỹ xem bạn có thể truy cập trang web bằng trình duyệt web bình thường hay không. Nếu bạn nhận được thông báo Truy cập bị từ chối tương tự thì vấn đề không phải là công cụ thu thập dữ liệu của bạn mà là sự cố mạng hoặc kết nối từ phía bạn.

Hãy thử truy cập URL trong cửa sổ trình duyệt ẩn danh. Nếu cách đó cũng không hiệu quả thì có thể trang web đó thực sự đã ngừng hoạt động hoặc chặn IP của bạn. Hãy thử một mạng hoặc VPN khác.

2. Giảm tốc độ yêu cầu của bạn

Một trong những lý do phổ biến nhất để phát hiện bot chỉ đơn giản là gửi yêu cầu quá thường xuyên. Việc tấn công nhanh chóng một trang web với các yêu cầu trang trong một khoảng thời gian ngắn chắc chắn sẽ bị chặn.

Thêm độ trễ giữa các yêu cầu của bạn để mô phỏng tốt hơn hành vi duyệt web của con người. Một vài giây thường là tốt nhưng đối với các trang web rất nhạy cảm với bot, bạn có thể cần hơn 10 giây giữa các yêu cầu. Hãy thử nghiệm để tìm ra điểm ngọt ngào.

3. Xoay địa chỉ IP và tác nhân người dùng

Một lá cờ đỏ lớn khác là khi tất cả các yêu cầu đều đến từ một địa chỉ IP duy nhất. Người dùng bình thường có IP đa dạng.

Sử dụng nhóm máy chủ proxy để xoay địa chỉ IP theo từng yêu cầu. Lý tưởng nhất đây phải là những proxy cao cấp có danh tiếng tốt. IP trung tâm dữ liệu luân phiên vẫn có thể bị chặn. Proxy dân dụng từ các thiết bị thực là cách tốt nhất để tránh bị chặn dựa trên IP.

Ngoài ra, hãy đảm bảo đặt tiêu đề tác nhân người dùng luân phiên, hợp lệ để thể hiện các trình duyệt/thiết bị khác nhau.

4. Sử dụng tiêu đề và cookie giống con người

Hãy xem các tiêu đề mà trình duyệt web thực gửi khi truy cập trang web. Cố gắng sao chép chúng càng gần càng tốt trong dụng cụ cạo của bạn.

Đặc biệt, đặt:

  • Một chuỗi tác nhân người dùng phổ biến
  • URL tham chiếu
  • Ngôn ngữ và mã hóa
  • Bất kỳ cookie nào trang web đặt

Bạn có thể sử dụng các công cụ dành cho nhà phát triển trình duyệt hoặc tiện ích mở rộng để xem tiêu đề đầy đủ. Sao chép tất cả những cái tiêu chuẩn.

5. Xử lý kết xuất Javascript

Một số trang web sử dụng các thử thách Javascript và các trang CAPTCHA yêu cầu kết xuất JS để giải quyết. Nếu trình quét của bạn không thực thi JS, bạn sẽ không thể tiếp tục.

Các công cụ như Puppeteer hoặc Selenium có thể hiển thị các trang trong môi trường trình duyệt hoàn chỉnh. Đối với các trang web nặng về JS, bạn sẽ cần sử dụng công cụ kết xuất thay vì thư viện HTTP đơn giản.

6. Che trình quét của bạn như một trình duyệt bình thường

Đối với cách tiếp cận lén lút nhất và rất khó phát hiện, hãy cân nhắc sử dụng hồ sơ trình duyệt tự động tự che giấu mình là người dùng con người.

Un detected-chromedriver là gói Python phổ biến tự động định cấu hình Chrome để tránh kích hoạt tính năng phát hiện bot. Nó xử lý các tiêu đề, cookie, lấy dấu vân tay WebGL và nhiều kiểm tra nâng cao khác.

Kết hợp chromedriver không bị phát hiện với proxy dân dụng là một cách tuyệt vời để làm cho các yêu cầu quét của bạn trông giống như lưu lượng truy cập bình thường của người dùng vào hệ thống của Cloudflare. Nó đòi hỏi nhiều tài nguyên hơn các yêu cầu đơn giản nhưng rất hiệu quả để tránh lỗi 1020.

Sử dụng ScrapingBee để tránh bị chặn cho bạn

Cuối cùng, nếu bạn muốn tránh phải tự mình xử lý việc bảo vệ khỏi bot của Cloudflare, bạn có thể để API quét web chuyên dụng xử lý việc đó.

ScrapingBee là một công cụ mạnh mẽ đảm nhiệm việc xoay vòng IP, tiêu đề, hiển thị trình duyệt và CAPTCHA ở hậu trường để bạn chỉ cần tập trung vào phân tích dữ liệu. Nó quản lý một lượng lớn proxy và hồ sơ trình duyệt để giữ cho yêu cầu của bạn không bị phát hiện.

Với API ScrapingBee, bạn chỉ cần cung cấp URL bạn muốn thu thập và nhận lại phản hồi HTML. Nó hoạt động như một proxy thông minh để truy xuất nội dung trang cho bạn, xử lý mọi biện pháp chống bot trong quá trình thực hiện.

Đây là ví dụ nhanh về cách sử dụng ScrapingBee Python SDK:

from scrapingbee import ScrapingBeeClient

client = ScrapingBeeClient(api_key=‘YOUR_API_KEY‘)

response = client.get(
    ‘https://example.com‘, 
    params = { 
        ‘render_js‘: ‘false‘
    }
)

print(‘Response HTTP Status Code: ‘, response.status_code)
print(‘Response HTTP Response Body: ‘, response.content)

Như bạn có thể thấy, chỉ với một vài dòng mã, bạn có thể truy xuất HTML của trang mà không cần lo lắng về các khối Cloudflare. API đảm nhiệm việc thử lại các yêu cầu không thành công và trả lại nội dung như thể một người dùng trình duyệt thực sự đã truy cập nội dung đó.

Việc sử dụng API thu thập dữ liệu chuyên dụng giúp tiết kiệm rất nhiều thời gian và tránh đau đầu so với việc cố gắng làm cho công cụ thu thập dữ liệu của bạn không bị phát hiện. Hãy thử nếu bạn muốn cách đơn giản nhất để tránh lỗi 1020.

Tổng kết

Lỗi Cloudflare 1020 chắc chắn có thể làm gián đoạn nỗ lực quét web, nhưng với một số điều chỉnh trong cách tiếp cận của bạn, bạn có thể tránh được lỗi đó trong hầu hết các trường hợp. Hãy nhớ những lời khuyên quan trọng sau:

  • Làm chậm tốc độ yêu cầu của bạn để bắt chước hành vi của con người
  • Xoay địa chỉ IP và tiêu đề để đa dạng hóa lưu lượng truy cập
  • Sử dụng tiêu đề, cookie và tác nhân người dùng của trình duyệt giống con người
  • Xử lý kết xuất Javascript cho các thử thách dựa trên JS
  • Hãy xem xét một API cào như ScrapingBee để trừu tượng hóa các khối

Với các kỹ thuật và công cụ phù hợp, bạn có thể thu thập dữ liệu từ ngay cả những trang web nhạy cảm với bot nhất mà không kích hoạt cơ chế phòng vệ của Cloudflare. Điều quan trọng là làm cho máy cạp của bạn hoạt động giống người dùng thực nhất có thể.

Tôi hy vọng hướng dẫn này hữu ích để hiểu và giải quyết lỗi Cloudflare 1020! Hãy cho tôi biết nếu bạn có bất kì câu hỏi nào khác.

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 *