🥳Hãy tham gia Cộng đồng ScrapelessYêu cầu dùng thử miễn phí để truy cập Bộ công cụ quét web mạnh mẽ của chúng tôi!
Quay lại Blog

Vượt qua giới hạn tốc độ và thực hiện web scraping chuyên nghiệp

Emily Chen
Emily Chen

Advanced Data Extraction Specialist

23-Sep-2024

Công cụ quan trọng để thu thập dữ liệu trực tuyến là web scraping. Quy trình có thể trở nên rất phức tạp, đặc biệt là khi bạn tính đến tất cả các trở ngại và yêu cầu bạn phải đáp ứng. Một trong số đó là giới hạn tốc độ, nếu không cẩn thận, có thể nhanh chóng dẫn đến việc tài khoản của bạn bị khóa.

Vậy nó hoạt động như thế nào, và con nhện của bạn có thể làm gì để ngăn chặn nó? Bài đăng này sẽ giải thích mọi thứ cần biết về giới hạn tốc độ và cách vượt qua chúng trong khi scraping.

Giới hạn tốc độ web scraping nghĩa là gì?

Số lượng tối đa yêu cầu bạn có thể gửi trong một khung thời gian cụ thể được gọi là giới hạn tốc độ. Đó là số lượng cuộc gọi tối đa bạn có thể thực hiện khi sử dụng API. Nói cách khác, bạn không thể gửi yêu cầu vượt quá giới hạn tài nguyên.

Bạn có thể thấy các thông báo lỗi sau nếu bạn tiếp tục:

  • Quá nhiều yêu cầu đến từ địa chỉ IP này;
  • Địa chỉ IP đã hết hạn mức được phân bổ.

Giới hạn tốc độ được sử dụng bởi các nhà cung cấp dịch vụ WAF như Cloudflare, Akamai và Datadome để tăng cường bảo mật. Trong thời gian tạm thời, nó được sử dụng bởi các nhà cung cấp API như Amazon để điều chỉnh luồng dữ liệu và tránh lạm dụng.
Hãy xem xét cách hoạt động của nó:

Giả sử máy chủ web có giới hạn đối với bạn. Máy chủ trả về 429: Quá nhiều yêu cầu khi trình trích xuất của bạn đạt giới hạn tốc độ.

Có rất nhiều kỹ thuật để giới hạn tốc độ. Bài viết này sẽ xem xét các ứng dụng thực tế, mặc dù. Đây là các loại phổ biến nhất:

  • Phương thức đầu tiên của giới hạn tốc độ là giới hạn tốc độ IP. chỉ liên kết địa chỉ IP của người dùng với số lượng yêu cầu
  • Giới hạn tốc độ API: Thông thường, sử dụng khóa API được yêu cầu bởi các nhà cung cấp API. Sau đó, họ có thể chọn giới hạn số lượng cuộc gọi bạn có thể thực hiện trong một khoảng thời gian nhất định
  • Giới hạn tốc độ địa lý: Bạn cũng có thể thiết lập giới hạn cho một quốc gia hoặc một khu vực cụ thể
  • Giới hạn tốc độ theo Phiên người dùng: Sau khi cookie phiên được tạo, tốc độ yêu cầu của bạn bị giới hạn bởi các nhà cung cấp WAF như Akamai
  • Giới hạn tốc độ theo yêu cầu HTTP: Cloudflare hỗ trợ một số tiêu đề HTTP và cookie cho việc giới hạn tốc độ. Dấu vân tay TLS cũng có thể được sử dụng để thực hiện giới hạn.

Tại sao các API bị giới hạn tốc độ?

Để bảo vệ máy chủ web khỏi bị quá tải, nhiều máy chủ bị giới hạn. Ngoài ra, nó cung cấp thêm sự bảo vệ chống lại các cuộc tấn công DDoS và bot độc hại. Những cuộc tấn công này hoặc hoàn toàn dừng hoạt động của API hoặc ngăn người dùng được ủy quyền sử dụng nó.

Tại sao các trang web sử dụng giới hạn tốc độ?

Một lần nữa, mục tiêu chính là ngăn chặn máy chủ bị quá tải và giảm khả năng bị tấn công. Nhưng ngay cả với ý định tốt nhất, việc trích xuất có thể dẫn đến việc giới hạn thoát. Điều này được thực hiện để quản lý luồng dữ liệu phía máy chủ.

Bạn có mệt mỏi vì bị chặn liên tục khi trích xuất web không?

Scrapeless: giải pháp trích xuất trực tuyến tất cả trong một tốt nhất hiện có!

Giữ ẩn danh và tránh bị cấm dựa trên IP với luân phiên proxy thông minh, hiệu suất cao của chúng tôi:

Hãy thử miễn phí!

Cách vượt qua các giới hạn tốc độ khi trích xuất web

Bạn có thể thực hiện những bước nào để ngăn chặn giới hạn tốc độ trích xuất web? Các mẹo và kỹ thuật sau đây có thể hữu ích:

  • Sử dụng máy chủ proxy
  • Sử dụng các tiêu đề yêu cầu cụ thể
  • Sửa đổi tiêu đề yêu cầu của HTTP

Như bạn đã biết, phương pháp dựa trên IP là kỹ thuật hạn chế được sử dụng phổ biến nhất. Do đó, chúng tôi khuyên bạn nên sử dụng máy chủ proxy. Trước tiên, hãy xem xét mọi khả năng:

Sử dụng các tiêu đề cụ thể trong yêu cầu

Chúng ta có thể giả mạo IP ở phía sau bằng cách sử dụng một số tiêu đề. Khi CDN phân phối tài liệu, bạn cũng có thể thử chúng:

  • X-Forwarded-Host: Tiêu đề này sử dụng tiêu đề yêu cầu HTTP Host để xác định máy chủ gốc mà máy khách yêu cầu. Sử dụng một danh sách lớn các tên miền, giới hạn tốc độ có thể bị bỏ qua. URL có thể được cung cấp trong tiêu đề này
  • X-Forwarded-For: Điều này chỉ định địa chỉ IP mà máy khách kết nối thông qua proxy đến máy chủ web bắt nguồn. Cần chỉ định địa chỉ IP của các máy chủ proxy đang được sử dụng cho kết nối. Có thể thực hiện brute-force bằng cách sử dụng danh sách IP hoặc chuyển một địa chỉ duy nhất.

Địa chỉ IP của máy khách được chỉ định trong các tiêu đề bên dưới. Tuy nhiên, chúng có thể không được sử dụng trong mọi dịch vụ. Hãy thử vận may của bạn bằng cách thay đổi địa chỉ!

  • X-Client-IP
  • X-Remote-IP
  • X-Remote-Addr

Sửa đổi tiêu đề yêu cầu của HTTP

Bỏ qua giới hạn tốc độ, yêu cầu có thể được gửi với các tiêu đề HTTP được ngẫu nhiên hóa. Các tiêu đề được sử dụng bởi rất nhiều trang web và nhà cung cấp WAF để ngăn chặn bot độc hại. Để vượt qua các hạn chế, bạn có thể gán chúng ngẫu nhiên, giống như User-Agent. Đó là một kỹ thuật trích xuất phổ biến.

Giải pháp cuối cùng: Máy chủ proxy

Khi bạn sử dụng một máy chủ proxy, nó sẽ chuyển tiếp yêu cầu của bạn đến chính nó. Sau khi nhận được phản hồi, nó sẽ gửi thông tin đó cho bạn. Vì luôn có một proxy khác có sẵn, bạn sẽ không phải đối phó với một proxy bị giới hạn tốc độ.

Do đó, proxy là cách tốt nhất để vượt qua giới hạn tốc độ IP. Mặc dù có các máy chủ miễn phí và công khai có sẵn, nhưng các nhà cung cấp WAF và trang web thường chặn chúng.

Hãy cùng xem xét hai loại máy chủ proxy:

  • Proxy dân cư: Các nhà cung cấp dịch vụ internet gán địa chỉ IP. Vì chúng được kết nối với một địa chỉ vật lý, chúng đáng tin cậy hơn nhiều so với proxy trung tâm dữ liệu. Nhược điểm chính là chi phí: các máy chủ cao cấp có giá cao hơn
  • Proxy trung tâm dữ liệu: Những proxy này được cung cấp trên cơ sở kinh doanh. Chúng thường bị báo cáo bởi các trang web và dịch vụ WAF và thiếu địa chỉ duy nhất. Do đó, chúng ít đáng tin cậy hơn nhưng có giá cả phải chăng hơn so với lựa chọn trước đó.

Một lựa chọn khác là sử dụng một proxy luân phiên thông minh, proxy này sẽ chọn ngẫu nhiên một máy chủ proxy dân cư khác mỗi khi bạn gửi yêu cầu.

Kết luận

Bây giờ bạn đã có một đoạn mã để thực hiện yêu cầu từ các địa chỉ IP ngẫu nhiên, chúc mừng!

Việc triển khai một trình xoay proxy hoàn chỉnh phù hợp cho việc trích xuất dữ liệu là một thử thách. Bạn có thể sử dụng Scrapeless API để tiết kiệm thời gian và công sức. Nó đi kèm với các proxy luân phiên thông minh mà bạn có thể sử dụng với chỉ một URL để tự động sử dụng. Nhận khóa API miễn phí của bạn bằng cách đăng ký ngay bây giờ!

Tại Scrapeless, chúng tôi chỉ truy cập dữ liệu có sẵn công khai trong khi tuân thủ nghiêm ngặt các luật, quy định hiện hành và chính sách bảo mật của trang web. Nội dung trong blog này chỉ nhằm mục đích trình diễn và không liên quan đến bất kỳ hoạt động bất hợp pháp hoặc vi phạm nào. Chúng tôi không đảm bảo và từ chối mọi trách nhiệm pháp lý đối với việc sử dụng thông tin từ blog này hoặc các liên kết của bên thứ ba. Trước khi tham gia vào bất kỳ hoạt động thu thập dữ liệu nào, hãy tham khảo ý kiến ​​cố vấn pháp lý của bạn và xem lại các điều khoản dịch vụ của trang web mục tiêu hoặc có được các quyền cần thiết.

Bài viết phổ biến nhất

Danh mục