Quay lại blog

So sánh công cụ scraping: bốn hướng tiếp cận và chi phí chống bot

Danh sách công cụ scraping ngày càng dài, nhưng thành công phụ thuộc nhiều hơn vào việc chọn đúng mô hình năng lực. Bài viết so sánh bốn hướng theo công sức chống bot, nội dung động, chi phí đồng thời và ranh giới tuân thủ.

Viết một script scraping chạy được một lần không khó; khó là giữ nó ổn định suốt nhiều tháng. So với vài năm trước, có nhiều thứ phải xử lý hơn: trang được render bằng JavaScript, CAPTCHA, giới hạn tần suất truy cập, kiểm tra Cookie và dấu vân tay thiết bị. Khi danh sách công cụ ngày càng dài, câu hỏi đầu tiên không phải chọn sản phẩm nào, mà là nhiệm vụ của bạn thuộc mô hình năng lực nào.

采集工具对比:四类路线与反爬应对成本的关键步骤与判断维度示意图

Thư viện HTTP request thuần túy

Chúng lấy HTML trực tiếp mà không khởi động browser. Nội dung động hầu như không lấy được, còn phần được render bằng script có thể trống. Điểm mạnh là concurrency và chi phí: một máy có thể đạt mức song song cao với mức sử dụng tài nguyên thấp nhất. Đổi lại, toàn bộ công việc chống bot do bạn tự xử lý: headers, sessions, proxies và kiểm soát tần suất đều phải tự viết. Khi target site nâng cấp chiến lược phát hiện, bạn cũng phải tự điều chỉnh theo. Đây cũng là hướng dễ phát sinh vấn đề tuân thủ nhất, vì các request tần suất cao không kiểm soát tạo áp lực trực tiếp lên target site và dễ vi phạm điều khoản.

Framework tự động hóa browser

Chúng điều khiển browser thật để click, nhập dữ liệu, chờ và đọc DOM. Hỗ trợ nội dung động đầy đủ nhất, bao gồm JS rendering, luồng tương tác và đăng nhập. Tuy nhiên concurrency có chi phí thực: mỗi instance đều dùng memory và CPU. Khi mở rộng quy mô, bạn phải tự xây dựng quản lý tiến trình, retry sau crash và thu hồi tài nguyên; phần việc này thường còn lớn hơn việc viết scraping logic. Về chống bot, bạn nhận được kết quả render thật, nhưng các dấu hiệu tự động hóa như automation flags hoặc dấu vết của headless mode vẫn có thể bị nhận diện và cần xử lý riêng. Rủi ro tuân thủ tương đối dễ kiểm soát; vấn đề chủ yếu xuất hiện khi automation được dùng cho mục đích vi phạm điều khoản của site.

Browser có khả năng cô lập môi trường

Dựa trên browser automation, mỗi scraping identity có browser fingerprint, Cookies, local storage và network exit riêng. Fingerprint có thể được cấu hình đồng bộ với vị trí địa lý của IP để timezone và ngôn ngữ phù hợp với khu vực IP. Hỗ trợ nội dung động giống loại trước. Concurrency có thêm một lớp chi phí: môi trường phải được khởi động khi cần và giải phóng sau khi chạy xong, nếu không các môi trường nhàn rỗi sẽ chiếm tài nguyên. Về chống bot, giá trị nằm ở việc tách identity sạch sẽ và giảm khả năng bị liên kết do dùng một môi trường đồng nhất. Nó không làm scraping nhanh hơn và cũng không xử lý quy tắc của target site thay bạn. Về tuân thủ, isolation giúp nhiều identity hợp pháp không ảnh hưởng lẫn nhau, chứ không phải để né quy tắc. PurpleMark thuộc loại này, cung cấp môi trường browser được cô lập và quản lý tập trung, mỗi scraping identity tương ứng với một môi trường độc lập.

Dịch vụ scraping trên cloud

Chúng gói proxy rotation, page rendering và xử lý human-machine verification sau một API: bạn gửi một địa chỉ và nhận lại content. Nội dung động thường được hỗ trợ, nhưng rendering thường là một chế độ riêng, tính phí theo request hoặc mức sử dụng. Đây là cách bắt đầu nhanh nhất và không cần bảo trì hạ tầng, nhưng chi phí mỗi request cao nhất và khi khối lượng lớn sẽ trở thành khoản chi chính. Xử lý chống bot nhìn bề ngoài đơn giản nhất, nhưng thực tế chuyển thành sự phụ thuộc: khi target site thay đổi giao diện hoặc chiến lược phát hiện, bạn không thể tự can thiệp mà phải chờ provider cập nhật, khiến nhịp kinh doanh bị phụ thuộc vào nhà cung cấp. Trách nhiệm tuân thủ cũng dễ trở nên mơ hồ, nhưng dùng managed service không làm chuyển trách nhiệm đối với hoạt động scraping.

Trước khi bắt đầu, hãy trả lời bốn câu hỏi

Có cần trạng thái đăng nhập không? Nếu có, có thể gần như loại bỏ pure request libraries. Có cần góc nhìn theo khu vực không? Nếu có, môi trường phải gắn IP, timezone và ngôn ngữ với nhau; chỉ đổi network exit mà không thay internal parameters thì không có nhiều ý nghĩa. Quy mô concurrency là bao nhiêu? Khi vượt quá vài chục identity chạy đồng thời, nên ưu tiên hướng có quản lý và lập lịch môi trường thay vì chỉ tăng số máy. Giá trị dữ liệu có đủ bù chi phí đơn vị không? Cloud services có thể phù hợp với lô nhỏ, giá trị cao; với khối lượng lớn, giá trị thấp, thường phải tự triển khai để giảm chi phí.

Ranh giới tuân thủ

Hoạt động scraping phải tuân thủ robots rules, terms of service của target site và pháp luật địa phương. Không thu thập thông tin cá nhân, không vượt qua các biện pháp bảo vệ kỹ thuật và không ảnh hưởng đến hoạt động bình thường của dịch vụ. Identity isolation nhằm giúp nhiều identity hợp pháp không can thiệp lẫn nhau, không phải để né quy tắc.

Chỉ dùng cho nghiên cứu kỹ thuật và chia sẻ thực hành phát triển. Hãy sử dụng các công nghệ liên quan trong khuôn khổ hợp pháp và tuân thủ.