Hermes Agent + Proxy IPv4 dedicated: scrape e-commerce không bị chặn IP

Chia sẻ bài viết

Mục lục
Minh hoạ Hermes Agent dùng proxy IPv4 dedicated scrape e-commerce

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áchChi phíHiệu quả cho e-com VN
Sleep + retryFreeYế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ángCao - 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.

💡 Mẹo: Khi scrape Shopee từ VPS US-only, gần như chắc chắn bị redirect sang trang captcha sau 5 request. Đổi sang IPv4 VN, tỷ lệ pass tăng vọt.

Kiến trúc: Hermes + proxy pool

Trên VPS chạy Hermes, bạn cần 3 thành phần:

  1. Hermes Agent (Python 3.11, cài qua install.sh) làm orchestrator
  2. Browser tool đi qua agent-browser local (Chromium) hoặc Browserbase cloud
  3. 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.

⚠️ Lưu ý: Đừng tham mua shared rồi gắn vào account thật của bạn (Shopee seller, Lazada). IP shared có thể đã từng spam, bạn vô tình bị flag chung.

Đạ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ữ:

  1. 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
  2. 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
  3. 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ầuRequest/ngàySố IP đề xuấtChi phí/tháng
Theo dõi 100 SP cạnh tranh, 1 lần/ngày1001 IP VN95k
Bot so giá 500 SP, 4 lần/ngày20002-3 IP VN190-285k
Crawl liên tục 5000 SP/ngày5000+5 IP VN + rotate475k
Multi-sàn (Shopee + Lazada + Tiki + Amazon)10000+5 VN + 5 US950k

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 --version ra OK
  • File ~/.hermes/config.toml có block [browser.proxy]
  • Test bằng httpbin.org/ip thấy IP đúng của proxy
  • Skill rotate_proxy.py load thành công (/skills trong 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.

Xem bảng giá VPS
Bản quyền chính hãng Microsoft✓ Đối tác Google Workspace Adobe Kaspersky · VMware & hơn nữa
2009
15+ năm vận hành liên tục
10+
tập đoàn lớn tin dùng
100+
doanh nghiệp SMB Việt
30 ngày
đổi key lỗi miễn phí
Phần mềm bản quyền chính hãng chúng tôi cung cấp
Bản quyền chính hãng Đối tác Microsoft ✓ Verified Hóa đơn VAT đầy đủ Đổi key lỗi 30 ngày Vận hành từ 2009 MST 0200994870 Hotline 0225.999.6666