Quay lại blog

Phân tích Walmart: cách chọn proxy và thiết lập thu thập dữ liệu không bị chặn

Walmart sử dụng bảo vệ chống bot mạnh mẽ PerimeterX. Chúng tôi phân tích các proxy hoạt động cho việc thu thập dữ liệu, cách thiết lập luân phiên và tránh bị chặn khi thu thập giá cả và tồn kho.

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

Walmart là cửa hàng trực tuyến lớn thứ hai ở Mỹ sau Amazon, và dữ liệu của nó cực kỳ quan trọng cho doanh nghiệp thương mại điện tử: theo dõi giá của đối thủ, theo dõi hàng tồn kho, phân tích danh mục sản phẩm. Vấn đề là Walmart sử dụng hệ thống bảo vệ bot tiên tiến PerimeterX, chặn 90% yêu cầu từ các trình phân tích ngay từ trang đầu tiên.

Trong hướng dẫn này, chúng ta sẽ phân tích các loại proxy nào thực sự hoạt động cho phân tích Walmart, cách thiết lập quay vòng địa chỉ IP, vượt qua fingerprinting trình duyệt và xây dựng một hệ thống thu thập dữ liệu ổn định, không bị ngắt quãng sau một giờ làm việc.

Tại sao Walmart chặn các trình phân tích: cơ chế bảo vệ PerimeterX

Walmart sử dụng hệ thống bảo vệ PerimeterX (nay được gọi là HUMAN Security) — một trong những hệ thống chống bot mạnh mẽ nhất trên thị trường. Nó phân tích mỗi yêu cầu theo hàng chục tham số và chặn lưu lượng nghi ngờ ngay cả trước khi trình phân tích của bạn nhận được mã HTML của trang.

Các cơ chế bảo vệ chính của Walmart:

1. Phân tích danh tiếng IP

PerimeterX kiểm tra mỗi địa chỉ IP qua cơ sở dữ liệu các máy chủ proxy, trung tâm dữ liệu và VPN đã biết. Nếu IP của bạn có trong cơ sở dữ liệu này — bạn sẽ bị chặn hoặc CAPTCHA. Walmart đặc biệt nghiêm ngặt trong việc lọc IP từ các nhà cung cấp đám mây phổ biến (AWS, Google Cloud, DigitalOcean).

2. Phân tích hành vi

Hệ thống theo dõi cách người dùng tương tác với trang: chuyển động chuột, tốc độ cuộn, nhấp chuột. Các trình phân tích trên Selenium hoặc Puppeteer thường bị phát hiện ở đây — họ mở trang quá nhanh, không có khoảng dừng tự nhiên, không di chuyển chuột.

3. Dấu vân tay TLS và HTTP

PerimeterX phân tích dấu vân tay TLS của kết nối của bạn (thứ tự mã hóa, mở rộng) và tiêu đề của các yêu cầu HTTP. Các thư viện Python tiêu chuẩn (requests, urllib) có dấu vân tay độc đáo, dễ dàng bị nhận diện. Ngay cả khi bạn đã thay đổi User-Agent, hệ thống vẫn thấy sự không phù hợp giữa các tiêu đề và trình duyệt thực tế.

4. Thử thách JavaScript

Khi có yêu cầu nghi ngờ, PerimeterX gửi mã JavaScript thực hiện các kiểm tra trong trình duyệt: khả năng truy cập Canvas API, WebGL, các tham số màn hình, các phông chữ đã cài đặt. Các trình phân tích HTTP đơn giản (không có động cơ trình duyệt) không thể vượt qua các kiểm tra này và bị chặn.

Điều gì xảy ra khi bị chặn:

  • HTTP 403 Forbidden — phản hồi phổ biến nhất, có nghĩa là IP hoặc dấu vân tay của bạn đang trong danh sách đen
  • Chuyển hướng đến trang với CAPTCHA — hệ thống không chắc chắn, cho bạn cơ hội chứng minh rằng bạn là người
  • Trang trống hoặc JSON với lỗi — máy chủ không trả về nội dung
  • Cấm tạm thời IP từ 15-60 phút — khi phân tích một cách hung hăng từ một địa chỉ

Kết luận chính: để phân tích thành công Walmart, cần một chiến lược toàn diện, trong đó proxy chỉ là một trong những yếu tố. Bạn cũng sẽ cần động cơ trình duyệt phù hợp, mô phỏng hành vi của con người và quay vòng địa chỉ IP hợp lý.

Các proxy nào hoạt động cho phân tích Walmart: so sánh các loại

Không phải tất cả các proxy đều hiệu quả như nhau trong việc vượt qua bảo vệ của Walmart. Hãy cùng phân tích bốn loại chính và khả năng áp dụng của chúng cho nhiệm vụ phân tích.

Loại proxy Hiệu quả cho Walmart Tốc độ Chi phí Khuyến nghị
Proxy dân cư ⭐⭐⭐⭐⭐
Tuyệt vời — IP của người dùng thực, tối thiểu bị chặn
Trung bình
(200-800 ms)
Cao
(từ $7-15/GB)
Tối ưu cho sản xuất
Proxy di động ⭐⭐⭐⭐⭐
Tuyệt vời — điểm tin cậy cao, ít bị chặn
Thấp
(500-1500 ms)
Rất cao
(từ $50-100/tháng cho mỗi IP)
Cho các trường hợp phức tạp
Proxy trung tâm dữ liệu ⭐⭐
Kém — khả năng bị chặn cao (70-90%)
Cao
(50-150 ms)
Thấp
(từ $1-3/IP)
Không được khuyến nghị
Proxy ISP ⭐⭐⭐⭐
Tốt — IP dân cư tĩnh
Cao
(80-200 ms)
Trung bình
(từ $30-80/tháng cho mỗi IP)
Cho các nhiệm vụ dài hạn

Chi tiết về từng loại:

Proxy dân cư — tiêu chuẩn vàng cho Walmart

Đây là các địa chỉ IP của các nhà cung cấp Internet thực (Comcast, AT&T, Verizon ở Mỹ). Walmart nhìn nhận chúng như những khách hàng bình thường, vì vậy tỷ lệ bị chặn là tối thiểu — khoảng 5-10% khi được thiết lập đúng cách. Lợi thế chính là các nhóm địa chỉ khổng lồ (hàng triệu IP), cho phép thiết lập quay vòng hiệu quả.

Khi nào sử dụng: theo dõi giá hàng ngàn sản phẩm, thu thập dữ liệu hàng ngày, các dự án dài hạn. Đối với phân tích Walmart, proxy dân cư là lựa chọn tối ưu về hiệu quả và chi phí.

Proxy di động — độ tin cậy tối đa

IP của các nhà mạng di động (T-Mobile, Verizon Wireless) có điểm tin cậy cao nhất trong các hệ thống chống bot. Nguyên nhân là một IP được sử dụng bởi hàng ngàn người dùng thực (thông qua NAT của nhà mạng), vì vậy việc chặn nó = chặn hàng ngàn khách hàng. Walmart hầu như không chặn IP di động.

Khi nào sử dụng: nếu proxy dân cư không hiệu quả, nếu cần phân tích các phần được bảo vệ đặc biệt (ví dụ, giá cho các khu vực cụ thể), nếu ngân sách cho phép. Proxy di động mang lại gần như 100% yêu cầu thành công, nhưng có giá cao hơn.

Proxy trung tâm dữ liệu — không dành cho Walmart

Địa chỉ IP của các máy chủ trong trung tâm dữ liệu (AWS, OVH, Hetzner) ngay lập tức bị PerimeterX nhận diện. Ngay cả khi bạn mua IP "sạch", chưa từng được sử dụng cho phân tích, hệ thống vẫn nhận thấy đây là trung tâm dữ liệu, không phải nhà cung cấp Internet gia đình. Tỷ lệ bị chặn là 70-90%.

Chỉ một kịch bản sử dụng: thử nghiệm trình phân tích trên một khối lượng dữ liệu nhỏ (10-50 trang). Không phù hợp cho sản xuất.

Proxy ISP (dân cư tĩnh) — là sự kết hợp: IP của các nhà cung cấp gia đình, nhưng được đặt trong trung tâm dữ liệu và được cấp cho bạn trong thời gian dài (tháng trở lên). Chúng nhanh hơn các proxy dân cư thông thường, nhưng đắt hơn và có nhóm địa chỉ hạn chế. Phù hợp nếu bạn cần IP ổn định cho việc phân tích lâu dài các danh mục sản phẩm giống nhau.

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

Mặc dù chúng ta đã xác định — proxy dân cư hiệu quả hơn, hãy cùng phân tích chi tiết các tình huống mà mỗi loại có thể được biện minh và tính toán chi phí thực tế sở hữu.

Kịch bản 1: Theo dõi 10,000 sản phẩm hàng ngày

Với proxy dân cư:

  • Kích thước trung bình của trang sản phẩm Walmart: ~500 KB
  • 10,000 sản phẩm × 500 KB = 5 GB lưu lượng mỗi ngày
  • Lưu lượng hàng tháng: 150 GB
  • Chi phí với $10/GB: $1,500/tháng
  • Tỷ lệ yêu cầu thành công: 90-95%
  • Chi phí thực tế với các yêu cầu lặp lại: ~$1,650/tháng

Với proxy trung tâm dữ liệu (về lý thuyết):

  • Chi phí 100 IP: ~$200/tháng
  • Tỷ lệ yêu cầu thành công: 10-30% (phần còn lại là bị chặn)
  • Cần thực hiện 3-10 lần thử cho mỗi sản phẩm
  • Lưu lượng thực tế: 15-50 GB (do các yêu cầu lặp lại)
  • Kết quả: nhiệm vụ không thể thực hiện — IP nhanh chóng bị cấm, CAPTCHA ở mỗi bước

Kịch bản 2: Thu thập dữ liệu một lần cho 500 sản phẩm

Nếu bạn cần thu thập dữ liệu một lần để phân tích thị trường hoặc nghiên cứu, bạn có thể thử cách tiếp cận kết hợp:

  • Sử dụng proxy trung tâm dữ liệu để thu thập URL sản phẩm ban đầu (các trang danh mục)
  • Chuyển sang proxy dân cư để lấy thông tin chi tiết về sản phẩm
  • Chi phí: ~$50-100 cho nhiệm vụ một lần
  • Thời gian thực hiện: 2-4 giờ thay vì 10-20 giờ với trung tâm dữ liệu

Các yếu tố chính để lựa chọn:

Tiêu chí Dân cư Trung tâm dữ liệu
Khối lượng dữ liệu Bất kỳ — từ 100 đến hàng triệu trang Chỉ khối lượng nhỏ (tối đa 1000 trang)
Tính thường xuyên Phân tích hàng ngày/hàng tuần Chỉ các nhiệm vụ một lần
Tốc độ thực hiện Ổn định — không có độ trễ do lặp lại Khó đoán — nhiều lần lặp lại
Độ tin cậy Cao — 90-95% thành công Thấp — 10-30% thành công
Chi phí lỗi Thấp — chỉ trả tiền cho lưu lượng thành công Cao — mất thời gian và tiền cho các lệnh cấm

Kết luận: Đối với bất kỳ nhiệm vụ phân tích nghiêm túc nào của Walmart, hãy sử dụng proxy dân cư hoặc di động. Proxy trung tâm dữ liệu chỉ có thể được xem xét cho việc thử nghiệm logic của trình phân tích trên 10-50 trang, nhưng không cho sản xuất. Tiết kiệm trên proxy sẽ dẫn đến mất thời gian, căng thẳng và cuối cùng sẽ tốn kém hơn.

Chiến lược quay vòng IP: tần suất thay đổi và nhóm địa chỉ

Ngay cả với proxy dân cư, bạn cũng có thể bị chặn nếu không thiết lập quay vòng địa chỉ IP đúng cách. PerimeterX theo dõi các mẫu hành vi: nếu một IP yêu cầu 100 trang sản phẩm trong một phút — đó rõ ràng là bot. Chiến lược quay vòng đúng cách là chìa khóa cho việc phân tích ổn định mà không bị chặn.

Ba chiến lược quay vòng chính:

1. Quay vòng cho mỗi yêu cầu (Rotating Proxies)

Mỗi yêu cầu HTTP đi qua một địa chỉ IP mới. Đây là chế độ hoạt động tiêu chuẩn của hầu hết các nhà cung cấp proxy dân cư.

Ưu điểm:

  • Rủi ro bị chặn tối thiểu — mỗi IP thực hiện 1-2 yêu cầu
  • Cài đặt đơn giản — nhà cung cấp tự quản lý nhóm
  • Có thể phân tích một cách hung hăng — hàng trăm yêu cầu mỗi phút

Nhược điểm:

  • Vấn đề với các phiên — nếu trang web sử dụng cookie, mỗi yêu cầu = một phiên mới
  • Chậm hơn — việc thiết lập kết nối mới mất 200-500 ms

Khi nào sử dụng: Để phân tích các trang sản phẩm của Walmart, nơi không cần xác thực và các phiên. Đây là chiến lược tối ưu cho hầu hết các nhiệm vụ theo dõi giá.

2. Sticky Sessions (phiên dính)

Một địa chỉ IP được sử dụng cho một loạt các yêu cầu trong một khoảng thời gian nhất định (thường là 5-30 phút), sau đó sẽ chuyển sang một IP mới.

Ưu điểm:

  • Bảo tồn các phiên và cookie — có thể làm việc với giỏ hàng, xác thực
  • Nhanh hơn — tái sử dụng kết nối TCP
  • Hành vi "tự nhiên" hơn cho các hệ thống chống bot

Nhược điểm:

  • Rủi ro bị chặn cao hơn — một IP thực hiện 10-50 yêu cầu
  • Cần kiểm soát giới hạn — không quá 30-50 yêu cầu từ một IP

Khi nào sử dụng: Nếu bạn cần phân tích dữ liệu yêu cầu xác thực (ví dụ, giá cho người dùng đã đăng ký), hoặc nếu bạn đang mô phỏng hành vi của một người mua thực (xem danh mục → sản phẩm → thêm vào giỏ hàng).

3. Nhóm IP tĩnh với quay vòng thủ công

Bạn lấy 50-100 IP dân cư tĩnh (proxy ISP) và tự quản lý việc phân phối yêu cầu giữa chúng.

Ưu điểm:

  • Kiểm soát hoàn toàn — bạn biết IP nào đã thực hiện bao nhiêu yêu cầu
  • Tốc độ tối đa — IP tĩnh nhanh hơn các IP quay vòng
  • Có thể "làm ấm" IP — thực hiện các yêu cầu hợp lệ để nâng cao danh tiếng

Nhược điểm:

  • Cài đặt phức tạp — cần viết logic phân phối yêu cầu
  • Đắt hơn — proxy ISP có giá từ $30-80 cho mỗi IP mỗi tháng
  • Rủi ro mất IP — nếu một IP bị cấm, bạn sẽ phải thay thế

Khi nào sử dụng: Đối với các hệ thống có tải cao với khối lượng 100,000+ yêu cầu mỗi ngày, nơi tốc độ và độ ổn định là rất quan trọng. Cần có kinh nghiệm trong phát triển trình phân tích.

Cài đặt được khuyến nghị cho Walmart:

Đối với theo dõi giá (phân tích trang sản phẩm đơn giản):

  • Loại: Proxy quay vòng với quay vòng cho mỗi yêu cầu
  • Độ trễ giữa các yêu cầu: 2-5 giây
  • Đồng thời: 10-20 luồng
  • Địa điểm: Mỹ (tốt nhất là tiểu bang có cửa hàng Walmart thực tế)

Đối với phân tích phức tạp (với xác thực, giỏ hàng):

  • Loại: Phiên dính với thời gian 10-15 phút
  • Giới hạn yêu cầu trên IP: tối đa 30-40
  • Độ trễ giữa các yêu cầu: 3-7 giây (mô phỏng con người)
  • Đồng thời: 5-10 luồng (ít hung hăng hơn)

Quan trọng: Nhiều nhà cung cấp proxy dân cư cho phép bạn thiết lập thời gian phiên thông qua các tham số kết nối. Ví dụ, bằng cách thêm session-15min vào tên người dùng, bạn sẽ nhận được phiên dính trong 15 phút. Hãy xác minh khả năng này với nhà cung cấp của bạn.

Vượt qua fingerprinting: User-Agent, tiêu đề và dấu vân tay TLS

Proxy chỉ giải quyết một nửa vấn đề — chúng cung cấp cho bạn một IP sạch. Nhưng PerimeterX không chỉ phân tích IP mà còn phân tích "dấu vân tay" của trình duyệt hoặc trình phân tích của bạn. Ngay cả với IP dân cư, bạn sẽ bị chặn nếu HTTP client của bạn trông giống như bot.

PerimeterX kiểm tra những gì:

1. User-Agent và tiêu đề HTTP

Các thư viện tiêu chuẩn (Python requests, Node.js axios) gửi các tiêu đề ngay lập tức phát hiện bot. Ví dụ, User-Agent: python-requests/2.28.1 — đây là 100% bị chặn.

Những gì cần thay đổi:

  • User-Agent — sử dụng các phiên bản mới của Chrome/Firefox
  • Accept — phải tương ứng với loại nội dung
  • Accept-Language — en-US cho phân tích Walmart Mỹ
  • Accept-Encoding — gzip, deflate, br
  • Referer — trang trước đó (danh mục hoặc trang chính)
  • Sec-Fetch-* — các tiêu đề của Chrome để bảo vệ chống CSRF

2. Dấu vân tay TLS (JA3)

Mỗi HTTP client có một dấu vân tay TLS độc đáo — thứ tự mã hóa, mở rộng TLS, phiên bản giao thức. PerimeterX so sánh dấu vân tay này với User-Agent: nếu bạn viết "Chrome 120", trong khi dấu vân tay TLS từ Python — bạn sẽ bị chặn.

Giải pháp:

  • Sử dụng các thư viện hỗ trợ TLS tùy chỉnh: curl-impersonate (Python), tls-client (Go)
  • Hoặc sử dụng trình duyệt thực qua Selenium/Puppeteer — chúng có dấu vân tay TLS thực sự

3. Thử thách JavaScript và fingerprinting Canvas

PerimeterX có thể gửi mã JavaScript để kiểm tra: API Canvas có sẵn không, WebGL, các phông chữ đã cài đặt, kích thước màn hình, múi giờ. Các trình phân tích HTTP đơn giản không thể thực hiện mã này.

Giải pháp:

  • Sử dụng các trình duyệt headless: Puppeteer, Playwright, Selenium
  • Nhất định phải bật chế độ vượt qua phát hiện: puppeteer-extra-plugin-stealth
  • Ngẫu nhiên hóa các tham số: kích thước cửa sổ, múi giờ, ngôn ngữ trình duyệt

Ví dụ về các tiêu đề đúng cho phân tích Walmart:

GET /ip/Product-Name/12345678 HTTP/1.1
Host: www.walmart.com
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/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.9
Accept-Encoding: gzip, deflate, br
Referer: https://www.walmart.com/browse/electronics/tv-video/3944_1060825
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Upgrade-Insecure-Requests: 1
Connection: keep-alive

Các chi tiết quan trọng:

  • Thứ tự của các tiêu đề có ý nghĩa — các trình duyệt thực gửi chúng theo một thứ tự nhất định. Sử dụng các thư viện tuân thủ thứ tự này.
  • Cookie — nếu PerimeterX đã thiết lập cookie _px3 hoặc _pxvid, nhất định phải gửi nó trong các yêu cầu tiếp theo. Đây là token của phiên của bạn.
  • HTTP/2 — Walmart sử dụng HTTP/2, và việc thiếu hỗ trợ cho giao thức này có thể là dấu hiệu của bot. Đảm bảo rằng client của bạn hỗ trợ HTTP/2.
  • Không sử dụng các tiêu đề giống nhau cho tất cả các yêu cầu — thay đổi User-Agent, sử dụng nhóm từ 10-20 phiên bản trình duyệt khác nhau.

Giới hạn tần suất và độ trễ: cách không vượt quá giới hạn yêu cầu

Ngay cả với proxy và tiêu đề hoàn hảo, bạn sẽ bị chặn nếu bạn phân tích quá hung hăng. Walmart theo dõi tần suất yêu cầu và các mẫu hành vi. Một người dùng thực không thể mở 100 trang sản phẩm trong một phút — hệ thống chống bot hiểu điều này.

Giới hạn được khuyến nghị cho Walmart:

Loại yêu cầu Độ trễ giữa các yêu cầu Tối đa yêu cầu từ một IP Đồng thời
Trang sản phẩm 2-5 giây 30-50 trang (với quay vòng) 10-20 luồng
Trang danh mục 3-7 giây 20-30 trang 5-10 luồng
Tìm kiếm 5-10 giây 10-15 yêu cầu 3-5 luồng
API-điểm cuối 1-3 giây 50-100 yêu cầu 20-30 luồng

Tại sao việc ngẫu nhiên hóa độ trễ lại quan trọng:

Nếu bạn thực hiện yêu cầu chính xác mỗi 3 giây (3.000, 6.000, 9.000...), hệ thống chống bot sẽ nhận diện mẫu. Một người thực không thể chính xác như vậy — họ sẽ có sự biến đổi: 2.8 giây, 3.4 giây, 2.9 giây.

Cách thực hiện độ trễ đúng (Python):

import random
import time

# Không đúng — độ trễ cố định
time.sleep(3)

# Đúng — độ trễ ngẫu nhiên
delay = random.uniform(2.0, 5.0)  # từ 2 đến 5 giây
time.sleep(delay)

Chiến lược quản lý tải:

1. Giới hạn tần suất thích ứng

Theo dõi tỷ lệ yêu cầu thành công. Nếu bạn bắt đầu nhận được 403 hoặc CAPTCHA — tự động tăng độ trễ và giảm độ đồng thời.

success_rate = successful_requests / total_requests

if success_rate < 0.8:  # ít hơn 80% thành công
    delay_multiplier *= 1.5  # tăng độ trễ
    parallel_workers -= 2    # giảm luồng
elif success_rate > 0.95:  # nhiều hơn 95% thành công
    delay_multiplier *= 0.9  # có thể tăng tốc
    parallel_workers += 1

2. Phân phối theo thời gian trong ngày

Phân tích trong giờ cao điểm của người dùng thực (buổi tối ở Mỹ, 18:00-22:00 EST). Trong thời gian này, lưu lượng của bạn hòa trộn với lưu lượng hợp lệ, và hệ thống chống bot ít hung hăng hơn. Vào ban đêm (2:00-6:00 EST), bảo vệ có thể nghiêm ngặt hơn, vì có ít người dùng thực hơn.

3. Làm ấm địa chỉ IP

Trước khi bắt đầu phân tích hàng loạt, "làm ấm" các địa chỉ IP bằng các yêu cầu hợp lệ: mở trang chính, một vài danh mục, thực hiện tìm kiếm. Điều này tạo ra lịch sử hoạt động và nâng cao điểm tin cậy của IP.

# Quy trình làm ấm cho IP mới
1. GET https://www.walmart.com/  # trang chính
2. Độ trễ 3-5 giây
3. GET https://www.walmart.com/browse/electronics  # danh mục
4. Độ trễ 4-7 giây
5. GET https://www.walmart.com/search?q=laptop  # tìm kiếm
6. Độ trễ 3-6 giây
# Bây giờ có thể phân tích các sản phẩm mục tiêu

Lỗi nghiêm trọng: Không sử dụng cùng một Referer cho tất cả các yêu cầu. Nếu bạn phân tích 1000 sản phẩm và tất cả đều có cùng một Referer trong tiêu đề — đây là một mẫu rõ ràng của bot. Vui lòng...

```