Quay lại blog

Proxy cho việc thu thập đặc điểm sản phẩm: cách thu thập dữ liệu từ các sàn thương mại điện tử mà không bị chặn

Hướng dẫn chi tiết về cách chọn và cấu hình proxy để thu thập thông tin sản phẩm từ các sàn thương mại điện tử: các loại proxy, xoay vòng IP, vượt qua hệ thống chống bot của Wildberries và Ozon.

📅26 tháng 1, 2026
```html

Thu thập thông tin đặc điểm sản phẩm từ các sàn thương mại điện tử là một nhiệm vụ cực kỳ quan trọng đối với các nhà bán hàng, nhà phân tích và các đơn vị tổng hợp giá. Wildberries, Ozon, Yandex.Market và các nền tảng khác đang tích cực chặn việc thu thập dữ liệu tự động bằng cách sử dụng các hệ thống chống bot tiên tiến. Nếu không có proxy được thiết lập đúng cách, bộ thu thập dữ liệu của bạn sẽ bị chặn chỉ sau 50-100 yêu cầu. Trong bài viết này, chúng ta sẽ xem xét các loại proxy nào phù hợp cho việc thu thập dữ liệu, cách thiết lập xoay vòng IP và vượt qua bảo vệ của các sàn thương mại điện tử lớn nhất.

Tại sao các sàn thương mại điện tử chặn việc thu thập dữ liệu và cách thức hoạt động

Các sàn thương mại điện tử hiện đại đang mất hàng triệu rúp do việc thu thập dữ liệu: các đối thủ sao chép mô tả sản phẩm, các đơn vị tổng hợp thu thập lưu lượng truy cập, và tải trọng trên các máy chủ tăng lên. Do đó, Wildberries, Ozon, Yandex.Market và các nền tảng khác đã triển khai bảo vệ nhiều lớp chống lại việc thu thập dữ liệu tự động.

Cách các sàn thương mại điện tử xác định việc thu thập dữ liệu:

  • Tần suất yêu cầu từ một IP — nếu từ một địa chỉ nhận được 100+ yêu cầu mỗi phút, đó là dấu hiệu rõ ràng của bot. Người dùng bình thường xem 5-10 thẻ sản phẩm trong khoảng thời gian đó.
  • Thiếu JavaScript — các bộ thu thập dữ liệu đơn giản trên requests hoặc curl không thực thi mã JS, mã này tải giá cả và đặc điểm. Trang web thấy rằng nội dung được yêu cầu mà không có quá trình kết xuất.
  • User-Agent và tiêu đề — các tiêu đề mặc định của thư viện (ví dụ: "python-requests/2.28.0") ngay lập tức phát hiện ra bot. Việc thiếu tiêu đề Accept-Language, Referer cũng là điều đáng nghi ngờ.
  • Fingerprint trình duyệt — các hệ thống tiên tiến (Cloudflare, Kasada, DataDome) phân tích Canvas, WebGL, phông chữ, tiện ích mở rộng của trình duyệt. Các trình duyệt headless như Puppeteer dễ dàng bị xác định do thiếu một số tham số.
  • Mô hình hành vi — bot mở các thẻ sản phẩm với khoảng thời gian giống nhau (ví dụ, chính xác mỗi 2 giây), không cuộn trang, không di chuyển chuột. Điều này phân biệt nó với con người thực.

Hậu quả của việc bị chặn: Bị chặn tạm thời IP từ 1-24 giờ, CAPTCHA cho mỗi yêu cầu, chặn hoàn toàn dải IP của trung tâm dữ liệu. Đối với doanh nghiệp, điều này có nghĩa là dừng thu thập dữ liệu và mất lợi thế cạnh tranh.

Trường hợp thực tế: Một đơn vị tổng hợp giá đã thu thập dữ liệu từ Wildberries với 10 IP từ trung tâm dữ liệu, thực hiện 500 yêu cầu mỗi giờ từ mỗi IP. Sau 3 ngày, toàn bộ dải /24 đã bị chặn vĩnh viễn — họ phải thay đổi nhà cung cấp proxy và chuyển sang IP dân cư với xoay vòng.

So sánh các loại proxy cho việc thu thập dữ liệu sản phẩm

Để thu thập thông tin đặc điểm sản phẩm, có ba loại proxy chính được sử dụng. Mỗi loại có những ưu điểm và hạn chế riêng tùy thuộc vào khối lượng dữ liệu, ngân sách và yêu cầu về tốc độ.

Loại proxy Tốc độ Rủi ro bị chặn Chi phí Khi nào sử dụng
Proxy trung tâm dữ liệu Cao (50-200 ms) Cao Thấp Thu thập dữ liệu với khối lượng nhỏ (tối đa 10.000 sản phẩm/ngày), thử nghiệm bộ thu thập dữ liệu
Proxy dân cư Trung bình (200-800 ms) Thấp Cao (theo lưu lượng) Thu thập dữ liệu từ Wildberries, Ozon với bảo vệ chống bot, khối lượng dữ liệu lớn
Proxy di động Trung bình (300-1000 ms) Rất thấp Rất cao Thu thập dữ liệu với bảo vệ tối đa, vượt qua các chặn nghiêm ngặt, các dự án quan trọng

Proxy trung tâm dữ liệu — là các địa chỉ IP của các máy chủ trong các trung tâm dữ liệu (AWS, Hetzner, OVH). Chúng nhanh và rẻ, nhưng các sàn thương mại điện tử dễ dàng xác định chúng qua cơ sở dữ liệu ASN. Phù hợp cho việc thu thập dữ liệu từ các danh mục nhỏ (tối đa 10.000 sản phẩm/ngày) hoặc các nền tảng không có bảo vệ nghiêm ngặt. Chi phí: từ 1-3$ cho mỗi IP mỗi tháng.

Proxy dân cư — là các địa chỉ IP của người dùng tại nhà, được lấy hợp pháp qua SDK trong các ứng dụng. Các sàn thương mại điện tử coi chúng như những người mua hàng bình thường. Hoàn hảo cho việc thu thập dữ liệu từ Wildberries, Ozon, Yandex.Market với khối lượng lớn. Chi phí: từ 5-15$ cho 1 GB lưu lượng (khoảng 10.000-30.000 yêu cầu).

Proxy di động — là các địa chỉ IP của các nhà mạng di động (MTS, Beeline, Megafon). Đây là loại đáng tin cậy nhất để vượt qua bảo vệ, nhưng đắt và chậm. Chỉ nên sử dụng cho các nhiệm vụ quan trọng, nơi việc bị chặn là không thể chấp nhận. Chi phí: từ 50-150$ cho mỗi IP mỗi tháng với xoay vòng.

Proxy dân cư hay trung tâm dữ liệu: chọn cái nào cho nhiệm vụ của bạn

Việc chọn loại proxy phụ thuộc vào ba yếu tố: khối lượng thu thập dữ liệu, mức độ bảo vệ của nền tảng và ngân sách. Hãy cùng xem xét các kịch bản sử dụng cụ thể.

Khi nào nên sử dụng proxy trung tâm dữ liệu

Kịch bản 1: Thử nghiệm bộ thu thập dữ liệu
Bạn đang phát triển một bộ thu thập dữ liệu mới và kiểm tra logic trích xuất dữ liệu. Cần thu thập 100-500 sản phẩm để gỡ lỗi. Trong trường hợp này, proxy dân cư là một khoản chi phí dư thừa. Hãy lấy 5-10 IP từ trung tâm dữ liệu và thực hiện 50-100 yêu cầu từ mỗi IP mỗi giờ. Điều này đủ để thử nghiệm mà không bị chặn.

Kịch bản 2: Thu thập dữ liệu từ các nền tảng không có bảo vệ
Các sàn thương mại điện tử khu vực nhỏ, các trang rao vặt như Avito (trong một số danh mục), các cửa hàng trực tuyến trên OpenCart thường không có hệ thống chống bot nghiêm ngặt. Ở đây, các trung tâm dữ liệu hoạt động ổn định với điều kiện tải vừa phải (tối đa 200 yêu cầu mỗi giờ từ một IP).

Kịch bản 3: Ngân sách hạn chế và khối lượng nhỏ
Nếu bạn cần thu thập 5.000-10.000 sản phẩm mỗi ngày và ngân sách hạn chế, hãy thử các trung tâm dữ liệu với xoay vòng tích cực (thay đổi IP mỗi 50-100 yêu cầu). Vâng, sẽ có nhiều chặn hơn, nhưng với việc thiết lập logic retry đúng cách (lặp lại yêu cầu với IP mới), điều này có thể hoạt động.

Khi nào cần proxy dân cư

Kịch bản 1: Thu thập dữ liệu từ Wildberries và Ozon
Các nền tảng này sử dụng Cloudflare, DataDome và các hệ thống chống bot riêng. Từ các trung tâm dữ liệu, bạn sẽ nhận được CAPTCHA hoặc bị chặn sau 20-50 yêu cầu. Proxy dân cư với xoay vòng mỗi 5-10 phút cho phép thu thập hàng trăm nghìn sản phẩm mà không gặp vấn đề gì. Một khách hàng đã thu thập toàn bộ danh mục Wildberries (hơn 20 triệu sản phẩm) trong một tuần, sử dụng một nhóm 1.000 IP dân cư.

Kịch bản 2: Thu thập dữ liệu có xác thực
Một số đặc điểm sản phẩm (giá bán buôn, tồn kho) chỉ có sẵn cho người dùng đã xác thực. Nếu bạn thu thập dữ liệu qua tài khoản, việc sử dụng các trung tâm dữ liệu sẽ dẫn đến việc chặn tài khoản. Proxy dân cư mô phỏng hành động của người dùng thực, giảm rủi ro bị chặn.

Kịch bản 3: Định vị địa lý
Giá cả và tình trạng hàng hóa trên Wildberries, Ozon, Yandex.Market phụ thuộc vào khu vực của người dùng. Để thu thập dữ liệu từ Moscow, St. Petersburg, Yekaterinburg cùng một lúc, cần có proxy dân cư với lựa chọn thành phố. Các trung tâm dữ liệu không cho phép kiểm soát chính xác vị trí địa lý.

Công thức chọn loại proxy:

  • Khối lượng < 10.000 sản phẩm/ngày + không có bảo vệ nghiêm ngặt = trung tâm dữ liệu
  • Khối lượng > 10.000 sản phẩm/ngày + Wildberries/Ozon = dân cư
  • Thu thập dữ liệu có xác thực + rủi ro bị chặn tài khoản = dân cư
  • Cần định vị địa lý theo các thành phố của Nga = dân cư
  • Dự án quan trọng + không chấp nhận bị chặn = di động

Thiết lập xoay vòng IP: khoảng thời gian và chiến lược

Xoay vòng IP là việc tự động thay đổi proxy sau một số lượng yêu cầu hoặc thời gian nhất định. Thiết lập xoay vòng đúng cách là chìa khóa để thu thập dữ liệu ổn định mà không bị chặn.

Các loại xoay vòng proxy

1. Xoay vòng theo thời gian (Time-based rotation)
IP được thay đổi sau một khoảng thời gian cố định: 5 phút, 10 phút, 30 phút. Đây là phương pháp đơn giản nhất, nhưng không phải là hiệu quả nhất. Nếu bạn thực hiện 200 yêu cầu trong 5 phút, trong khi giới hạn của nền tảng là 100 yêu cầu từ một IP, bạn vẫn sẽ bị chặn.

Khi nào sử dụng: Đối với proxy dân cư với tải thấp (tối đa 50 yêu cầu mỗi IP). Ví dụ, thu thập dữ liệu từ Wildberries với khoảng thời gian 3-5 giây giữa các yêu cầu — xoay vòng mỗi 10 phút sẽ là tối ưu.

2. Xoay vòng theo số lượng yêu cầu (Request-based rotation)
IP được thay đổi sau N yêu cầu: 50, 100, 200. Phương pháp này chính xác hơn so với xoay vòng theo thời gian, nhưng yêu cầu theo dõi bộ đếm yêu cầu trong mã của bộ thu thập dữ liệu.

Khi nào sử dụng: Đối với các trung tâm dữ liệu và thu thập dữ liệu tích cực. Ví dụ, bạn biết rằng Ozon chặn sau 80 yêu cầu từ một IP — hãy thiết lập xoay vòng mỗi 70 yêu cầu để có dự phòng.

3. Xoay vòng theo từng yêu cầu (Per-request rotation)
Mỗi yêu cầu đi qua một IP mới. Đây là phương pháp bảo vệ tối đa chống lại việc bị chặn, nhưng là chiến lược đắt nhất cho proxy dân cư (tiêu tốn lưu lượng tăng lên do việc thiết lập các kết nối mới).

Khi nào sử dụng: Để vượt qua các bảo vệ nghiêm ngặt nhất (Cloudflare trong chế độ "Under Attack"), thu thập dữ liệu với rủi ro cao bị chặn tài khoản, thu thập dữ liệu từ các đối thủ theo dõi việc thu thập dữ liệu.

Khoảng thời gian xoay vòng được khuyến nghị cho các nền tảng phổ biến

Nền tảng Loại proxy Khoảng thời gian xoay vòng Độ trễ giữa các yêu cầu
Wildberries Dân cư Mỗi 5-10 phút hoặc 50 yêu cầu 2-4 giây
Ozon Dân cư Mỗi 7-12 phút hoặc 60 yêu cầu 3-5 giây
Yandex.Market Dân cư Mỗi 10-15 phút hoặc 80 yêu cầu 2-3 giây
Avito (danh mục sản phẩm) Trung tâm dữ liệu Mỗi 15-20 phút hoặc 100 yêu cầu 1-2 giây
AliExpress Dân cư Mỗi 3-5 phút hoặc 30 yêu cầu 4-6 giây

Điều quan trọng: Những con số này là kết quả của việc thử nghiệm vào năm 2024. Các sàn thương mại điện tử liên tục cập nhật bảo vệ, vì vậy nên bắt đầu với các thiết lập bảo thủ (ít yêu cầu, nhiều độ trễ) và từ từ tăng tải, theo dõi tỷ lệ bị chặn.

Chiến lược "xoay vòng thông minh"

Thay vì các khoảng thời gian cố định, hãy sử dụng xoay vòng thích ứng dựa trên phản hồi từ máy chủ:

  • HTTP 429 (Quá nhiều yêu cầu) — ngay lập tức thay đổi IP và thêm IP này vào danh sách đen trong 30-60 phút.
  • HTTP 403 (Bị cấm) hoặc CAPTCHA — thay đổi IP và tăng độ trễ giữa các yêu cầu lên 50%.
  • HTTP 503 (Dịch vụ không khả dụng) — có thể vấn đề không phải ở proxy mà do quá tải trang web. Tạm dừng 30-60 giây mà không thay đổi IP.
  • Các yêu cầu thành công liên tiếp > 100 — có thể giảm độ trễ một chút hoặc tăng số lượng yêu cầu trước khi xoay vòng.

Logic này được thực hiện trong mã của bộ thu thập dữ liệu và cho phép tiết kiệm đến 30-40% lưu lượng proxy, tránh các xoay vòng không cần thiết.

Vượt qua hệ thống chống bot của Wildberries, Ozon và Yandex.Market

Các sàn thương mại điện tử hiện đại sử dụng bảo vệ nhiều lớp: từ việc kiểm tra User-Agent đơn giản đến việc fingerprinting trình duyệt tiên tiến. Chỉ có proxy là không đủ — cần một chiến lược vượt qua toàn diện.

Cấp độ 1: Tiêu đề HTTP đúng cách

Tập hợp tối thiểu các tiêu đề mà bộ thu thập dữ liệu của bạn cần gửi:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Cache-Control: max-age=0

Các điểm quan trọng:

  • User-Agent phải tương ứng với trình duyệt thực. Sử dụng các phiên bản Chrome 120+, Firefox 121+. Không sử dụng các phiên bản cũ (Chrome 90) — đây là dấu hiệu đỏ.
  • Accept-Language phải là "ru-RU" cho các nền tảng Nga. Nếu bạn thu thập dữ liệu với tiêu đề "en-US", trang web sẽ nhận ra sự không phù hợp (IP từ Nga, nhưng ngôn ngữ là tiếng Anh).
  • Các tiêu đề Sec-Fetch-* xuất hiện trong Chrome 76+ và là bắt buộc cho các trang web hiện đại. Việc thiếu chúng sẽ phát hiện ra bộ thu thập dữ liệu cũ.

Cấp độ 2: Thực thi JavaScript

Wildberries và Ozon tải giá cả, đặc điểm, tồn kho qua JavaScript sau khi tải trang. Nếu bộ thu thập dữ liệu của bạn trên requests/curl chỉ tải HTML, nó sẽ nhận được trang trống hoặc một trang đệm.

Giải pháp: Sử dụng các trình duyệt headless — Puppeteer (Node.js), Playwright (Python/Node.js), Selenium. Chúng hoàn toàn kết xuất trang, thực thi JS và nhận HTML cuối cùng.

Vấn đề của các trình duyệt headless: Các trang web dễ dàng xác định chúng qua các tham số navigator.webdriver === true, thiếu các tiện ích mở rộng, kích thước Canvas đặc trưng. Tỷ lệ xác định trình duyệt headless Chrome là khoảng 80-90%.

Giải pháp cho vấn đề: Sử dụng các thư viện để chế độ ẩn danh:

  • puppeteer-extra-plugin-stealth (Node.js) — làm cho Puppeteer giống như Chrome thông thường, sửa đổi 30+ tham số fingerprint.
  • undetected-chromedriver (Python) — phiên bản đã sửa đổi của Selenium ChromeDriver, mà hầu hết các hệ thống chống bot không xác định.
  • playwright-stealth (Python) — tương tự cho Playwright với hỗ trợ Firefox và WebKit.

Cấp độ 3: Vượt qua Cloudflare và DataDome

Wildberries sử dụng Cloudflare Bot Management, Ozon sử dụng DataDome. Các hệ thống này phân tích không chỉ IP và tiêu đề mà còn cả hành vi: tốc độ cuộn, chuyển động chuột, thời gian tải trang.

Dấu hiệu của Cloudflare Challenge: Thay vì nội dung, bạn thấy trang "Đang kiểm tra trình duyệt của bạn..." với độ trễ 5 giây. Trong mã là thử thách JavaScript, kiểm tra trình duyệt.

Cách vượt qua:

  • FlareSolverr — dịch vụ proxy tự động giải quyết Cloudflare Challenge. Bạn gửi URL cho nó, nó trả về cookies để vượt qua. Hoạt động trong 70-80% trường hợp.
  • Playwright với thời gian chờ — tải trang trong trình duyệt headless, chờ 10-15 giây (cho đến khi JS thực thi), trích xuất cookies và sử dụng chúng trong các yêu cầu HTTP thông thường. Tiết kiệm tài nguyên: trình duyệt chỉ cần thiết để nhận cookies, sau đó thu thập dữ liệu qua requests.
  • Proxy dân cư + trình duyệt ẩn danh — sự kết hợp này mang lại tỷ lệ thành công vượt qua trên 95%. Cloudflare thấy IP thực của người dùng và fingerprint trình duyệt chính xác.

Quan trọng: Cloudflare liên tục cập nhật bảo vệ. Những gì hoạt động vào tháng 12 năm 2024 có thể không hoạt động vào tháng 3 năm 2025. Luôn có kế hoạch dự phòng: giải quyết CAPTCHA thủ công qua các dịch vụ 2Captcha/AntiCaptcha hoặc chuyển sang API của sàn thương mại điện tử (nếu có sẵn).

Cấp độ 4: Mô phỏng hành vi của người dùng

Các hệ thống chống bot tiên tiến theo dõi các mô hình hành vi. Người dùng thực cuộn trang, di chuyển chuột, đôi khi quay lại. Bot mở các thẻ sản phẩm với khoảng thời gian hoàn hảo 2.000 giây.

Cách mô phỏng:

  • Ngẫu nhiên hóa độ trễ — thay vì 3 giây cố định, hãy sử dụng random.uniform(2.5, 5.0). Thêm các khoảng dừng dài hiếm hoi (15-30 giây), mô phỏng sự phân tâm của người dùng.
  • Cuộn trang — trong Puppeteer/Playwright, thêm cuộn trước khi trích xuất dữ liệu: await page.evaluate(() => window.scrollBy(0, 500)).
  • Di chuyển chuột — thư viện ghost-cursor cho Puppeteer tạo ra các quỹ đạo di chuyển chuột thực tế.
  • Chuyển tiếp qua tìm kiếm — không mở các thẻ sản phẩm trực tiếp qua URL. Đầu tiên hãy vào trang chính, thực hiện tìm kiếm, nhấp vào sản phẩm trong kết quả. Điều này trông tự nhiên hơn.

Các công cụ phổ biến cho việc thu thập dữ liệu với hỗ trợ proxy

Để thu thập thông tin đặc điểm sản phẩm, không nhất thiết phải viết mã từ đầu. Có những công cụ sẵn có với giao diện trực quan, hỗ trợ proxy và tự động vượt qua bảo vệ.

Octoparse — bộ thu thập dữ liệu không cần mã

Mô tả: Ứng dụng Desktop cho Windows/Mac với trình tạo bộ thu thập dữ liệu trực quan. Bạn nhấp vào các phần tử trên trang (tên sản phẩm, giá cả, đặc điểm), chương trình tự động tạo quy tắc trích xuất.

Hỗ trợ proxy: Tích hợp sẵn. Trong cài đặt, bạn chỉ định danh sách proxy, chương trình tự động xoay vòng chúng. Hỗ trợ HTTP, HTTPS, SOCKS5. Có tích hợp với các nhà cung cấp Bright Data, Smartproxy.

Ưu điểm: Không cần mã, hoạt động với các trang web JavaScript, lập lịch tác vụ tích hợp, xuất sang Excel/CSV/JSON.
Nhược điểm: Đăng ký trả phí từ 75$/tháng, chậm hơn so với mã Python, hạn chế về số lượng trang trong phiên bản miễn phí.

Khi nào sử dụng: Đối với các dự án nhỏ (tối đa 50.000 sản phẩm), nếu bạn không phải là lập trình viên hoặc cần một nguyên mẫu nhanh.

ParseHub — bộ thu thập dữ liệu đám mây

Mô tả: Tương tự như Octoparse, nhưng hoạt động trên đám mây. Bạn thiết lập bộ thu thập dữ liệu trong ứng dụng desktop, nhưng nó được chạy trên các máy chủ của ParseHub. Tiện lợi cho các nhiệm vụ dài (thu thập dữ liệu 100.000+ sản phẩm).

Hỗ trợ proxy: Chỉ trong các gói trả phí (từ 149$/tháng). Có thể tải lên danh sách proxy của riêng bạn hoặc sử dụng IP dân cư tích hợp của ParseHub.

Ưu điểm: Không làm tải máy tính của bạn, xử lý phân trang tự động, API để tích hợp.
Nhược điểm: Đắt, hỗ trợ chậm, khó khăn trong việc thiết lập cho các trang web phức tạp.

Scrapy (Python) — cho lập trình viên

Mô tả: Framework để tạo bộ thu thập dữ liệu trên Python. Là lựa chọn linh hoạt và nhanh nhất — có thể thu thập hàng triệu sản phẩm mỗi ngày. Cần có kiến thức Python ở mức trung bình.

Hỗ trợ proxy: Qua middleware. Các giải pháp phổ biến: scrapy-rotating-proxies (xoay vòng từ danh sách), scrapy-proxy-pool (tích hợp với API của các nhà cung cấp). Thiết lập mất 10-15 phút.

Ưu điểm: Miễn phí, rất nhanh (yêu cầu bất đồng bộ), kiểm soát hoàn toàn logic, cộng đồng lớn.
Nhược điểm: Cần viết mã, khó khăn với các trang web JavaScript (cần tích hợp với Splash hoặc Playwright).

Khi nào sử dụng: Đối với các dự án nghiêm túc với khối lượng 100.000+ sản phẩm mỗi ngày, nếu bạn có lập trình viên trong đội.

Apify — thị trường bộ thu thập dữ liệu sẵn có

Mô tả: Nền tảng với hàng ngàn bộ thu thập dữ liệu sẵn có (gọi là "diễn viên") cho các trang web phổ biến. Có các giải pháp sẵn có cho Amazon, eBay, AliExpress. Đối với các sàn thương mại điện tử Nga, lựa chọn ít hơn, nhưng có thể đặt hàng phát triển.

Hỗ trợ proxy: Tích hợp sẵn cho tất cả các diễn viên. Apify cung cấp proxy dân cư riêng (thanh toán theo lưu lượng) hoặc bạn có thể kết nối proxy của riêng mình.

Ưu điểm: Giải pháp sẵn có, thực hiện trên đám mây, API để tự động hóa, proxy tích hợp sẵn.
Nhược điểm: Đắt (từ 49$/tháng + thanh toán cho proxy), phụ thuộc vào nền tảng, hạn chế về tùy chỉnh.

So sánh các công cụ

Công cụ Cần mã không? Giá Tốc độ Dành cho ai
Octoparse Không Từ 75$/tháng Trung bình Nhà tiếp thị, nhà phân tích không lập trình
ParseHub Không Từ 149$/tháng Trung bình Những người cũng muốn thực hiện trên đám mây
Scrapy Có (Python) Miễn phí Rất cao Lập trình viên, khối lượng dữ liệu lớn
Apify Không (các diễn viên sẵn có) Từ 49$/tháng + lưu lượng Cao Doanh nghiệp, cần giải pháp sẵn có
Puppeteer/Playwright Có (JS/Python) Miễn phí Trung bình (trình duyệt nặng) Lập trình viên, các trang web JS phức tạp

Hướng dẫn từng bước thiết lập proxy trong bộ thu thập dữ liệu

Hãy xem xét việc thiết lập proxy thực tế bằng cách sử dụng các công cụ phổ biến. Những hướng dẫn này phù hợp cho việc thu thập dữ liệu từ bất kỳ sàn thương mại điện tử nào, không chỉ riêng của Nga.

Thiết lập trong Octoparse

Bước 1: Mở Octoparse và tạo một nhiệm vụ thu thập dữ liệu mới. Nhập URL của trang khởi đầu (ví dụ, danh mục sản phẩm trên Wildberries).

Bước 2: Chuyển đến menu "Cài đặt" → "Cài đặt nâng cao" → "Proxy". Chọn "Sử dụng proxy tùy chỉnh".

Bước 3: Thêm proxy theo định dạng:

http://username:password@proxy-server.com:8080
socks5://username:password@proxy-server.com:1080

Bước 4: Bật tùy chọn "Xoay vòng proxy" và thiết lập khoảng thời gian xoay vòng. Đối với Wildberries, khuyến nghị "Xoay vòng mỗi 50 yêu cầu" hoặc "Xoay vòng mỗi 10 phút".

Bước 5: Nhấn "Kiểm tra Proxy" — Octoparse sẽ kiểm tra tính khả dụng của từng proxy. Xóa các proxy không hoạt động khỏi danh sách.

Bước 6: Trong phần "Tốc độ", thiết lập độ trễ giữa các yêu cầu: 2-4 giây cho proxy dân cư, 3-5 giây cho trung tâm dữ liệu.

Thiết lập trong Scrapy (Python)

Bước 1: Cài đặt thư viện cho xoay vòng proxy:

pip install scrapy-rotating-proxies

Bước 2: Tạo một tệp proxies.txt với danh sách proxy (mỗi proxy trên một dòng):

http://user:pass@1.2.3.4:8080
http://user:pass@5.6.7.8:8080
socks5://user:pass@9.10.11.12:1080

Bước 3: Trong tệp settings.py của dự án Scrapy của bạn, thêm:

ROTATING_PROXY_LIST_PATH = 'proxies.txt'

DOWNLOADER_MIDDLEWARES = {
    'rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
    'rotating_proxies.middlewares.BanDetectionMiddleware': 620,
}

# Độ trễ giữa các yêu cầu (tính bằng giây)
DOWNLOAD_DELAY = 3

# Ngẫu nhiên hóa độ trễ (±50%)
RANDOMIZE_DOWNLOAD_DELAY = True

# Các yêu cầu đồng thời (không quá 16 cho proxy dân cư)
CONCURRENT_REQUESTS = 8

Bước 4: Scrapy sẽ tự động xoay vòng proxy cho mỗi yêu cầu. Nếu proxy trả về lỗi (HTTP 403, 429, timeout), nó sẽ được đánh dấu là "xấu" và tạm thời bị loại khỏi xoay vòng.

Thiết lập trong Puppeteer (Node.js)

Bước 1: Cài đặt Puppeteer và plugin cho chế độ ẩn danh:

npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

Bước 2: Tạo một script với hỗ trợ proxy:

const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());

const proxyList = [
  'http://user:pass@proxy1.com:8080',
  'http://user:pass@proxy2.com:8080'
];

let currentProxyIndex = 0;

async function scrapeWithProxy(url) {
  const proxy = proxyList[currentProxyIndex];
  currentProxyIndex = (currentProxyIndex + 1) % proxyList.length;

  const browser = await puppeteer.launch({
    headless: true,
    args: [`--proxy-server=${proxy}`]
  });

  const page = await browser.newPage();
  
  // Xác thực proxy (nếu cần)
  await page.authenticate({
    username: 'user',
    password: 'pass'
  });

  await page.goto(url, { waitUntil: 'networkidle2' });
  
  // Trích xuất dữ liệu
  const data = await page.evaluate(() => {
    return {
      title: document.querySelector('.product-title')?.innerText,
      price: document.querySelector('.product-price')?.innerText,
      // Thêm các trường khác nếu cần
    };
  });

  await browser.close();
  return data;
}

Bước 3: Gọi hàm scrapeWithProxy(url) với URL cần thu thập dữ liệu.

```