
Bạn viết một con Hermes Agent scrape giá Shopee, chạy 10 phút thì IP VPS dính 429 rồi sleep 10 phút - lặp lại đến hết ngày. Đây là kiểu pain mà chỉ proxy IPv4 dedicated mới giải được, và Hermes có sẵn cơ chế gắn proxy vào browser tool. Bài này đi vào cấu hình thật, không lý thuyết suông.
Vì sao scrape e-commerce hay dính ban IP
Mọi sàn lớn (Shopee, Lazada, Tiki, Amazon) đều có 3 lớp phòng thủ chính: rate-limit theo IP, fingerprint TLS/JA3, và bot-detection dựa trên hành vi. Khi bạn chạy Hermes Agent trên 1 con VPS, toàn bộ traffic đi ra cùng 1 IP datacenter. IP datacenter thì đã nằm trong blacklist sẵn của các CDN như Cloudflare, Akamai - nên thường bạn dính chặn ngay request đầu tiên, hoặc dính captcha liên tục.
Có 3 hướng giải quyết, mức độ tăng dần:
| Cách | Chi phí | Hiệu quả cho e-com VN |
|---|---|---|
| Sleep + retry | Free | Yếu, chỉ tránh được rate-limit nhẹ |
| Residential proxy | Đắt (USD/GB) | Mạnh nhưng tốn, không kiểm soát IP |
| IPv4 dedicated VN | ~95k/IP/tháng | Cao - IP residential VN, dùng riêng, không chia |
Với Shopee và Lazada VN, IPv4 dedicated từ ISP Việt Nam thường ăn điểm hơn residential US, vì sàn thấy IP VN là khách tự nhiên - không bật captcha gắt như IP nước ngoài.
Kiến trúc: Hermes + proxy pool
Trên VPS chạy Hermes, bạn cần 3 thành phần:
- Hermes Agent (Python 3.11, cài qua install.sh) làm orchestrator
- Browser tool đi qua agent-browser local (Chromium) hoặc Browserbase cloud
- Pool proxy IPv4 dedicated - mỗi IP gắn vào 1 phiên browser, rotate khi cần
Cài Hermes nếu chưa có (chi tiết trong bài hướng dẫn cài Hermes + gắn proxy):
curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash
# Khởi động
hermes
Cấu hình proxy cho browser tool
Hermes có 2 đường để dùng browser: cloud Browserbase (qua Nous Portal subscription) hoặc local Chromium qua agent-browser. Cho mục đích scrape e-com với proxy của riêng bạn, đường local là tối ưu vì kiểm soát hoàn toàn.
Cấu hình proxy local trong file ~/.hermes/config.toml:
[browser]
backend = "local"
headless = true
[browser.proxy]
server = "http://proxy-vn-01.tnd.vn:3128"
username = "user_acc1"
password = "***"
[browser.fingerprint]
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36"
viewport = { width = 1920, height = 1080 }
locale = "vi-VN"
timezone = "Asia/Ho_Chi_Minh"
Test ngay xem proxy có active không bằng cách bảo Hermes mở trang httpbin.org/ip:
You: mở https://httpbin.org/ip qua browser tool và đọc IP hiển thị
Hermes: [browser.navigate https://httpbin.org/ip]
{
"origin": "171.225.x.x"
}
IP hiện tại của bạn (qua proxy): 171.225.x.x - đây là IP VN, ISP Viettel.
Nếu IP đó trùng với IP VPS thay vì IP proxy, là proxy chưa attach. Check lại env HTTP_PROXY, HTTPS_PROXY Hermes có pick up không.
Pool nhiều IP và rotation
Một IP scrape Shopee tầm 50-100 request/giờ là an toàn. Muốn scale lên 1000 SP/giờ, bạn cần 10-20 IP và rotate. Mình thường dùng 5 IP VN + 5 IP US (cho Amazon/eBay) - tổng 950k/tháng, rẻ hơn nhiều so với 1 gói residential 5GB/tháng.
Viết một skill rotation cho Hermes (đặt tại ~/.hermes/skills/rotate_proxy.py):
import random
from hermes_cli.tools import register
PROXY_POOL = [
{"server": "http://proxy-vn-01.tnd.vn:3128", "user": "u1", "pass": "p1"},
{"server": "http://proxy-vn-02.tnd.vn:3128", "user": "u2", "pass": "p2"},
{"server": "http://proxy-vn-03.tnd.vn:3128", "user": "u3", "pass": "p3"},
{"server": "http://proxy-us-01.tnd.vn:3128", "user": "u4", "pass": "p4"},
{"server": "http://proxy-us-02.tnd.vn:3128", "user": "u5", "pass": "p5"},
]
@register("rotate_proxy")
def pick_proxy(country: str = "vn") -> dict:
"""Pick a random proxy from pool, optionally filtered by country.
Args:
country: 'vn', 'us', or 'any'
Returns:
dict with server, user, pass keys
"""
pool = PROXY_POOL
if country != "any":
pool = [p for p in PROXY_POOL if country in p["server"]]
return random.choice(pool)
Sau khi tạo file, restart Hermes (hermes rồi /reload). Agent tự nhận skill mới và có thể gọi:
You: dùng rotate_proxy lấy 1 IP VN, sau đó mở Shopee trang tìm "tai nghe bluetooth",
extract top 10 sản phẩm vào file shopee-tainghe.json
Hermes: [rotate_proxy country=vn] -> proxy-vn-02
[browser.connect proxy=proxy-vn-02.tnd.vn:3128]
[browser.navigate https://shopee.vn/search?keyword=tai+nghe+bluetooth]
[browser.extract] -> 10 items
[file.write shopee-tainghe.json] OK
Dedicated vs shared - chọn cái nào
Đây là điểm phải nói thẳng. Proxy thị trường VN có 2 loại chính:
- Shared rotating: rẻ (~20-40k/IP), 1 IP có hàng chục người dùng cùng lúc. Vấn đề: bạn không biết IP đó đang được dùng để spam Shopee bởi ai khác hay không. Khi dính ban, ban cả cụm.
- Dedicated IPv4 fresh: ~95k/IP/tháng, IP cấp riêng, chưa ai dùng. Bạn dùng sạch, sàn không thấy traffic bất thường từ IP đó.
Cho scrape e-commerce, dedicated thắng tuyệt đối. Cho task ít quan trọng (check rank Google, ping endpoint public), shared vẫn ok.
Đạo đức scrape e-commerce
Scrape giá public để so sánh là việc bình thường, các sàn không cấm. Nhưng có 3 ranh giới cần giữ:
- Rate khiêm tốn: 1 request mỗi 3-5 giây mỗi IP, không bắn parallel hàng trăm connection
- Không scrape user data: review có gắn username, lịch sử mua hàng, đơn hàng - đụng vào là vi phạm
- Tuân thủ robots.txt: nếu sàn cấm 1 path nào đó, đừng cố crawl
Hermes có thể tự đọc robots.txt và refuse khi bạn yêu cầu scrape path bị cấm - thêm vào system prompt:
[agent.system]
extra = """
Trước khi scrape bất kỳ domain nào, fetch robots.txt và check path.
Nếu path bị Disallow, từ chối và báo lại cho user.
Rate-limit: tối thiểu 3 giây giữa 2 request tới cùng domain.
"""
Đo lường: bao nhiêu IP cho nhu cầu của bạn
Quy tắc đơn giản dựa trên thực tế chạy production:
| Nhu cầu | Request/ngày | Số IP đề xuất | Chi phí/tháng |
|---|---|---|---|
| Theo dõi 100 SP cạnh tranh, 1 lần/ngày | 100 | 1 IP VN | 95k |
| Bot so giá 500 SP, 4 lần/ngày | 2000 | 2-3 IP VN | 190-285k |
| Crawl liên tục 5000 SP/ngày | 5000+ | 5 IP VN + rotate | 475k |
| Multi-sàn (Shopee + Lazada + Tiki + Amazon) | 10000+ | 5 VN + 5 US | 950k |
VPS nào chạy cho ổn
Browser tool của Hermes mở Chromium thật, mỗi tab tốn ~200-300MB RAM. Nếu chạy 3-5 session song song, RAM 4GB sẽ dễ swap và chậm. VPS 80 của TND (6vCPU/6GB) là điểm sweet cho ai chạy pool 5 IP, mỗi IP 1 session.
Cấu hình mình hay dùng: VPS 80 + 5 IPv4 VN dedicated. Tổng ~1.475 triệu/tháng cho một bot scrape multi-thread chạy ổn định 24/7, đủ phục vụ shop nhỏ-vừa.
Đọc thêm về VPS phù hợp cho dev tự host AI agent để chọn cấu hình phù hợp.
Checklist trước khi deploy
- Hermes đã cài và chạy
hermes --versionra OK - File
~/.hermes/config.tomlcó block[browser.proxy] - Test bằng httpbin.org/ip thấy IP đúng của proxy
- Skill
rotate_proxy.pyload thành công (/skillstrong Hermes thấy tên) - Rate limit trong system prompt set >= 3s
- Output file (JSON/CSV) ghi đúng path, có rotation log
- Cron hoặc Hermes built-in scheduler chạy task theo lịch
Bài viết liên quan
Cần VPS + Proxy IPv4 dedicated để chạy Hermes scrape
TND Cloud có VPS 80 (6vCPU/6GB Ceph SSD NVMe, RAM ECC, 999k/tháng) và IPv4 fresh VN/US dedicated 95k/IP/tháng - combo chuẩn để chạy bot scrape e-commerce ổn định.


