Scarnox · Blog

Proxy dân cư hay proxy datacenter cho web scraping

Proxy dân cư và proxy datacenter đều thay đổi địa chỉ mà lưu lượng của bạn có vẻ đến từ đó, nhưng chúng không thể thay thế cho nhau. Proxy datacenter đi qua các máy chủ đặt trong trung tâm dữ liệu. Proxy dân cư đi qua một địa chỉ mà nhà cung cấp internet đã gán cho một kết nối gia đình. Sự khác biệt thể hiện ở tốc độ, ở mức độ trang tin tưởng địa chỉ, và ở chi phí vận hành. Hướng dẫn này so sánh hai loại và đưa ra một bài kiểm tra đơn giản để quyết định scraper của bạn cần loại nào.

Câu trả lời ngắn

Dùng proxy datacenter khi mục tiêu không canh chừng tự động hóa quá chặt, bạn cần thông lượng cao, và bạn đang thu thập từ một trang có chính sách tốc độ rộng rãi. Dùng proxy dân cư khi mục tiêu chấm điểm địa chỉ theo nguồn gốc, khi bạn cần một quốc gia hoặc thành phố cụ thể, hoặc khi địa chỉ datacenter liên tục bị chặn. Nhiều dự án dùng cả hai: datacenter cho phần lớn công việc, dân cư cho những trang từ chối mọi thứ khác.

Cách chúng so sánh

Độ tin cậy. Các trang biết dải địa chỉ nào thuộc nhà cung cấp hosting, và nhiều trang chấm điểm chúng thấp theo mặc định. Một địa chỉ dân cư trông như bất kỳ khách gia đình nào, nên nó bắt đầu với điểm tốt hơn. Độ tin cậy là lý do lớn nhất để chọn dân cư.

Tốc độ. Kết nối datacenter thường nhanh và ổn định hơn. Kết nối dân cư chậm hơn và có thể rớt, vì chúng chạy trên mạng tiêu dùng. Hãy chuẩn bị timeout dài hơn và nhiều retry hơn với lưu lượng dân cư.

Định vị địa lý. Pool dân cư thường cho phép nhắm mục tiêu chi tiết hơn, theo quốc gia và thường theo vùng hoặc thành phố. Điều này quan trọng khi một trang hiển thị giá, tồn kho hoặc nội dung khác nhau theo vị trí. Pool datacenter thường thô hơn.

Độ ổn định của địa chỉ. Một địa chỉ datacenter thường giữ được danh tiếng theo thời gian, điều này giúp ích cho phiên cố định (sticky session). Địa chỉ dân cư thay đổi thường xuyên hơn, nên tính liên tục của phiên phụ thuộc nhiều hơn vào nhà cung cấp.

Chi phí mỗi request. Proxy datacenter thường rẻ hơn cho khối lượng lớn. Lưu lượng dân cư được định giá khác và thường đắt hơn cho cùng số request. Hãy kiểm tra bảng giá hiện tại của nhà cung cấp thay vì giả định bên nào cũng rẻ.

Chạy một bài kiểm tra công bằng

Cách duy nhất đáng tin để chọn là kiểm thử cả hai với mục tiêu thật của bạn. Giữ bài kiểm tra nhỏ và công bằng:

  1. Chọn mười trang từ mục tiêu, đại diện cho khối lượng công việc thật.
  2. Chạy cùng một script qua pool datacenter, rồi qua pool dân cư, với cùng nhịp độ và cùng header.
  3. Đo tỷ lệ thành công, thời gian phản hồi trung vị, và số lần bị chặn hoặc trang thử thách.
  4. Chọn pool rẻ hơn đáp ứng được mục tiêu thành công của bạn, không phải pool có số liệu thô tốt nhất.
import time
import requests

def measure(urls: list[str], proxy: str) -> dict:
    ok, blocked, times = 0, 0, []
    for url in urls:
        start = time.monotonic()
        try:
            r = requests.get(url, proxies={"http": proxy, "https": proxy}, timeout=30)
            times.append(time.monotonic() - start)
            if r.status_code in (403, 429, 503):
                blocked += 1
            else:
                ok += 1
        except requests.RequestException:
            blocked += 1
        time.sleep(2)  # giữ bài kiểm tra lịch sự
    return {
        "success_rate": ok / len(urls),
        "blocked": blocked,
        "median_seconds": sorted(times)[len(times) // 2] if times else None,
    }

Chạy trên cùng danh sách URL cho mỗi loại proxy, và so sánh kết quả cạnh nhau. Lặp lại bài kiểm tra vào một thời điểm khác trong ngày, vì tải trên cả hai mạng thay đổi.

Khi xuất hiện captcha

Chặn và captcha là hai vấn đề khác nhau. Proxy dân cư có thể giảm tần suất captcha xuất hiện, nhưng khi nó xuất hiện, bạn vẫn cần một token hợp lệ. Loại captcha đang hoạt động tại Scarnox là PopularCaptcha. Hướng dẫn Python cho PopularCaptcha chỉ cách token được yêu cầu và gửi đi. Nếu trang gắn token với địa chỉ mạng, hãy giữ cùng một proxy cho trang và lần giải. Xem proxy hay proxyless khi giải captcha để chọn.

Những sai lầm cần tránh

Sai lầm phổ biến nhất là mua lưu lượng dân cư cho một công việc mà địa chỉ datacenter xử lý hoàn toàn tốt. Nếu mục tiêu là một danh mục công khai với chính sách tốc độ rộng rãi, chi phí thêm mang lại rất ít. Sai lầm ngược lại là kiểm thử một lần vào một buổi chiều vắng, rồi kết luận một pool đáng tin. Tải thay đổi trong ngày, nên hãy chạy so sánh vào nhiều thời điểm. Sai lầm thứ ba là chỉ đo tỷ lệ thành công. Một pool trả về một trang trông ổn nhưng thực ra là trang thử thách hoặc khung rỗng thì chưa thành công, nên hãy kiểm tra cả nội dung phản hồi chứ không chỉ mã trạng thái.

Đạo đức của pool dân cư

Proxy dân cư mang một trách nhiệm mà proxy datacenter không có. Các địa chỉ thuộc về những hộ gia đình thật. Hãy chọn nhà cung cấp lấy địa chỉ với sự đồng ý có hiểu biết của những người liên quan, và hỏi họ làm điều đó thế nào trước khi đăng ký. Tránh mọi dịch vụ định tuyến lưu lượng qua thiết bị hoặc phần mềm được cài đặt mà không có sự đồng ý của chủ sở hữu. Đó là một tổn hại về quyền riêng tư, và cũng là rủi ro pháp lý cho dự án của bạn.

Scrape có trách nhiệm

Bước tiếp theo

Bắt đầu với tín dụng dùng thử miễn phí, không cần thẻ: tạo tài khoản và chạy luồng PopularCaptcha trên một trang bạn sở hữu. Xem giá hiện tại tại trang giá.