VPS chạy tool Shopee: Hướng dẫn tự code auto bằng Python/Selenium

Tác giả: Trần Thảo 04 tháng 02, 2026

Nếu bạn là một người bán hàng Shopee chuyên nghiệp hoặc một developer, bạn sẽ nhanh chóng nhận ra giới hạn của các công cụ auto tích hợp sẵn hoặc các trình duyệt giả lập (như Anti-detect browser, Nox, LDPlayer).

Những công cụ này có hai vấn đề lớn:

  1. Tiêu tốn tài nguyên: Chạy nhiều tài khoản đồng nghĩa với việc mở hàng chục cửa sổ trình duyệt. PC của bạn sẽ cạn kiệt RAM và CPU chỉ trong vài giờ. Việc này không bền vững.
  2. Phụ thuộc hoàn toàn: Bạn bị phụ thuộc vào nhà cung cấp công cụ. Khi họ tăng giá, bạn phải chịu. Khi Shopee cập nhật, bạn phải chờ họ cập nhật. Bạn không thể tuỳ biến logic chat hay kịch bản săn sale theo ý mình.

Đây là lúc giải pháp chuyên sâu phát huy tác dụng: Tự xây dựng hệ thống VPS chạy tool Shopee bằng Python và Selenium.

  • VPS (Máy chủ ảo): Cung cấp một môi trường Linux (Ubuntu) nhẹ, ổn định, có IP riêng và chạy 24/7. Bạn không bao giờ phải lo máy cá nhân bị gián đoạn hay quá tải.
  • Python/Selenium: Cung cấp khả năng xử lý linh hoạt, cho phép bạn điều khiển trình duyệt ở mức độ sâu nhất, mô phỏng hành vi người dùng thật và tự code bất kỳ logic nào bạn muốn.

Bài viết này không dành cho người muốn mua công cụ có sẵn. Đây là hướng dẫn kỹ thuật chuyên sâu dành cho developer và chủ shop có tư duy kỹ thuật, muốn sở hữu và kiểm soát 100% hệ thống tự động của mình.

Tóm tắt nhanh cho Developer: Bài viết này hướng dẫn bạn cách tự code tool auto Shopee (ví dụ: tự động đẩy sản phẩm) bằng Python và Selenium trên VPS Ubuntu. Giải pháp này giúp bạn tiết kiệm tài nguyên, loại bỏ sự phụ thuộc vào công cụ bên thứ ba, và cho phép tùy biến logic 100%. Chúng tôi sẽ đi qua các bước: so sánh API vs. Selenium, cài đặt môi trường VPS, và cung cấp code Python hoàn chỉnh.

API chính thống vs. Selenium thực chiến – Bạn cần gì?

Trước khi viết một dòng code, chúng ta phải làm rõ một cuộc tranh luận trong giới developer: Nên dùng Shopee Open API hay dùng Selenium?

Câu trả lời trung thực nhất là: Tuỳ vào thứ bạn cần.

Con đường chính thống: Shopee Open API

Đây là con đường an toàn, được Shopee hỗ trợ chính thức. Nó được thiết kế cho các nghiệp vụ Backend như quản lý đơn hàng, đồng bộ tồn kho với kho 3PL, hoặc cập nhật thông tin sản phẩm hàng loạt. Đây cũng là con đường được khuyến nghị để xây dựng hệ thống bán hàng tự động cho TikTok Shop.

  • Ưu điểm: An toàn 100%, được hỗ trợ chính thức, tốc độ cực nhanh và rất ổn định.
  • Rào cản: Con đường này có 2 rào cản lớn:
    1. Yêu cầu pháp lý: Bạn phải là Registered Business Seller (Doanh nghiệp) hoặc Third-party Partner Platform (ISV), yêu cầu giấy phép kinh doanh.
    2. Yêu cầu về hiệu suất: Bạn cần đáp ứng số lượng đơn hàng tối thiểu (ví dụ: 30-600 đơn/30 ngày tùy thị trường) để được duyệt.
  • Hạn chế chí mạng: Shopee Open API KHÔNG HỖ TRỢ các tính năng mô phỏng hành vi người dùng mà seller cần nhất. Ví dụ điển hình: Tính năng “Đẩy sản phẩm” (Boost Product) định kỳ 4 tiếng/lần.

Con đường thực chiến: Python & Selenium

Đây là lúc Selenium (một công cụ tự động hóa trình duyệt) phát huy vai trò. Nếu API là Backend, thì Selenium là Frontend.

  • Ưu điểm: Làm được mọi thứ mà API không thể làm. Nó có thể tự động click nút “Đẩy sản phẩm”, tự động gửi kịch bản chat, tự động theo dõi giá đối thủ.
  • Nhược điểm (Phải thừa nhận):
    • Rủi ro: Về mặt kỹ thuật, việc này có thể vi phạm Điều khoản Dịch vụ (ToS) của Shopee.
    • Bị phát hiện: Shopee có thể dùng CAPTCHA nếu phát hiện hành vi tự động bất thường.

Kết luận: Chúng ta chọn con đường nào?

Bài viết này tập trung vào nhu cầu thực tế nhất của người bán hàng cá nhân và nhỏ lẻ: Tự động đẩy sản phẩm.

Vì API không thể làm điều này (và có rào cản đăng ký), Selenium là giải pháp thực chiến duy nhất. Nhiệm vụ của chúng ta là làm cho script Selenium trở nên thông minh, mô phỏng người dùng thật nhất có thể và chạy 100% tự động trên VPS để giảm thiểu rủi ro.

Chuẩn bị môi trường VPS (Ubuntu)

Đây là bước quan trọng nhất. Chúng ta sẽ cài đặt trên một máy chủ VPS Linux (Ubuntu) vì nó nhẹ, bảo mật và cực kỳ ổn định, tốn ít RAM/CPU hơn Windows. Nếu bạn mới làm quen, hãy xem qua các lệnh Linux cơ bản nhất cho người mới.

Bước 1: Chọn và kết nối VPS

  • Chọn VPS: Chọn nhà cung cấp uy tín với gói cơ bản (ví dụ: 2 Core CPU, 2GB RAM) là đủ để bắt đầu.
  • Kết nối: Dùng PowerShell/CMD (Windows) hoặc Terminal (macOS/Linux) với lệnh sau (thay your_ip_address bằng IP của bạn):
ssh root@your_ip_address

Bước 2: Cập nhật VPS và cài đặt Python

Ngay khi đăng nhập, hãy cập nhật hệ thống để đảm bảo an toàn và tính tương thích:

sudo apt update && sudo apt upgrade -y

Sau đó, cài đặt Python 3, trình quản lý gói pip, và môi trường ảo venv:

sudo apt install python3-pip python3-venv -y

Bước 3: Cài đặt Google Chrome & ChromeDriver Headless

Chúng ta cần một trình duyệt để Selenium điều khiển. Vì VPS không có màn hình, chúng ta sẽ dùng Chrome Headless (chế độ không giao diện).

Tải và cài đặt Google Chrome:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb

Nếu gặp lỗi thiếu thư viện phụ thuộc, hãy chạy lệnh sau để tự động sửa:

sudo apt-get install -f -y

Tiếp theo, cài ChromeDriver. Bạn phải tải phiên bản ChromeDriver khớp chính xác với phiên bản Chrome của mình.

1. Kiểm tra phiên bản Chrome vừa cài:

google-chrome --version
# Ví dụ output: Google Chrome 125.0.6422.112

2. Lấy link tải ChromeDriver:

3. Tải và cài đặt trên VPS:
Sử dụng lệnh wget với link bạn vừa copy (Link dưới đây là ví dụ minh họa):

wget https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/125.0.6422.112/linux-x64/chromedriver-linux64.zip

Giải nén và di chuyển file thực thi vào thư mục hệ thống:

unzip chromedriver-linux64.zip
sudo mv -f chromedriver-linux64/chromedriver /usr/local/bin/
sudo chmod +x /usr/local/bin/chromedriver

Dọn dẹp các file cài đặt không còn dùng đến:

rm chromedriver-linux64.zip
rm -rf chromedriver-linux64

Bước 4: Tạo môi trường ảo và cài đặt thư viện Python

Chúng ta sẽ dùng môi trường ảo (venv) để quản lý dự án sạch sẽ, tránh xung đột thư viện.

Tạo thư mục dự án và khởi tạo môi trường ảo:

mkdir shopee_tool
cd shopee_tool
python3 -m venv venv

Kích hoạt môi trường ảo:

source venv/bin/activate

Sau khi kích hoạt, bạn sẽ thấy tiền tố (venv) ở đầu dòng lệnh.

Cài đặt các thư viện cần thiết:

pip install selenium
pip install selenium-stealth
  • selenium: Thư viện chính để điều khiển trình duyệt.
  • selenium-stealth: Công cụ giúp script của bạn giống người dùng thật hơn và qua mặt các cơ chế phát hiện bot cơ bản.

Ghi chú: Chúng ta dùng selenium-stealth vì sự phổ biến của nó. Các lựa chọn khác như undetected-chromedriver cũng có mục đích tương tự.

Hoàn tất! VPS của bạn giờ đã sẵn sàng để trở thành một cỗ máy VPS chạy tool Shopee. Sau khi cài đặt xong, bạn nên cấu hình tường lửa cơ bản để tăng cường bảo mật.

Code tool tự động “đẩy sản phẩm”

Bây giờ là lúc tích hợp mọi thứ. Tạo một file tên boost_shopee.py trong thư mục shopee_tool và dán đoạn mã hoàn chỉnh dưới đây vào.

Script này được thiết kế để:

  1. Chạy Headless (không giao diện) trên VPS.
  2. Dùng selenium-stealth để tránh bị phát hiện.
  3. Dùng user-data-dir để lưu cookie. Bạn chỉ cần đăng nhập Shopee một lần duy nhất.
import time
import logging
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium_stealth import stealth

# Cấu hình logging để dễ dàng debug trên VPS
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

def setup_driver():
    """Khởi tạo Chrome Driver với cấu hình tối ưu."""
    chrome_options = Options()
    
    # Các tùy chọn bắt buộc khi chạy trên VPS Linux
    chrome_options.add_argument("--headless") 
    chrome_options.add_argument("--no-sandbox")
    chrome_options.add_argument("--disable-dev-shm-usage")
    chrome_options.add_argument("--window-size=1920,1080")
    
    # Hai dòng này giúp tắt cờ "Trình duyệt đang được điều khiển bởi phần mềm tự động"
    chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
    chrome_options.add_experimental_option('useAutomationExtension', False)
    # ----------------------------------------

    # Quan trọng: Lưu session, cookie vào thư mục 'user_data'
    chrome_options.add_argument("user-data-dir=./user_data") 

    driver = webdriver.Chrome(options=chrome_options)

    # Cấu hình Stealth
    stealth(driver,
            languages=["en-US", "en"],
            vendor="Google Inc.",
            platform="Win32",
            webgl_vendor="Intel Inc.",
            renderer="Intel Iris OpenGL Engine",
            fix_hairline=True,
            )
    return driver

def boost_products(driver):
    """Logic chính: Điều hướng và click đẩy sản phẩm."""
    try:
        logging.info("Truy cập Kênh Người Bán Shopee...")
        # Link trực tiếp đến trang sản phẩm
        driver.get("https://banhang.shopee.vn/portal/product/list/all")

        # Chờ trang tải và xác thực (tối đa 30 giây)
        # Chúng ta chờ một element chắc chắn có sau khi đăng nhập (thanh menu tabs)
        WebDriverWait(driver, 30).until(
            EC.presence_of_element_located((By.CLASS_NAME, "shopee-tabs__nav"))
        )
        logging.info("Đã đăng nhập và vào được trang sản phẩm.")

        # Chờ 5 giây để các nút "Đẩy sản phẩm" (load bằng JavaScript) kịp xuất hiện
        time.sleep(5) 

        # Tìm TẤT CẢ các nút có chữ "Đẩy sản phẩm"
        boost_buttons = driver.find_elements(By.XPATH, "//button[contains(., 'Đẩy sản phẩm')]")

        if not boost_buttons:
            logging.warning("Không tìm thấy nút 'Đẩy sản phẩm' nào. Có thể đã đẩy hết.")
            return

        logging.info(f"Tìm thấy {len(boost_buttons)} sản phẩm có thể đẩy.")
        
        count = 0
        for button in boost_buttons:
            try:
                # Click vào nút
                button.click()
                count += 1
                logging.info(f"Đã click đẩy sản phẩm thứ {count}.")
                # Chờ 2 giây giữa mỗi lần click để giảm rủi ro
                time.sleep(2) 
            except Exception as e:
                # Bỏ qua nếu nút không thể click (ví dụ: bị che) và tiếp tục
                logging.warning(f"Lỗi khi click nút: {e}")

        logging.info(f"Hoàn tất! Đã đẩy thành công {count} sản phẩm.")

    except Exception as e:
        logging.error(f"Lỗi nghiêm trọng trong quá trình đẩy sản phẩm: {e}")
        # Chụp lại màn hình để debug nếu lỗi
        driver.save_screenshot("error_screenshot.png")
        logging.info("Đã lưu ảnh chụp màn hình lỗi tại error_screenshot.png")

# Hàm main để chạy script
if __name__ == "__main__":
    driver = None
    try:
        logging.info("Bắt đầu kịch bản đẩy sản phẩm Shopee...")
        driver = setup_driver()
        boost_products(driver)
        logging.info("Kịch bản đã chạy xong.")
    except Exception as e:
        logging.fatal(f"Script gặp lỗi và phải dừng: {e}")
    finally:
        if driver:
            driver.quit()
            logging.info("Đã đóng trình duyệt.")

Để chạy script, bạn dùng lệnh:

python3 boost_shopee.py

Triển khai 24/7 và quản lý rủi ro

Script đã chạy được, nhưng nếu bạn đóng cửa sổ SSH, script sẽ tắt. Chúng ta cần cho nó chạy ngầm và tự động lặp lại mỗi 4 giờ (theo cơ chế của Shopee).

Lập lịch chạy 24/7 (Dùng cronjob)

cronjob là công cụ lập lịch mạnh mẽ có sẵn trên Linux. (Một giải pháp khác đơn giản hơn cronjob để chạy ngầm là sử dụng Lệnh Screen).

Đầu tiên, hãy thoát khỏi môi trường ảo (venv):

deactivate

Sau đó, mở bảng lập lịch cronjob:

crontab -e

Nếu được hỏi, chọn trình soạn thảo nano cho dễ dùng.

Di chuyển xuống cuối file và dán dòng lệnh sau vào.
Lưu ý: thay /root/shopee_tool bằng đường dẫn tuyệt đối đến thư mục dự án của bạn (bạn có thể lấy bằng lệnh pwd).

# Chạy script đẩy Shopee mỗi 4 giờ (vào phút 0 của giờ 0, 4, 8, 12, 16, 20)
0 */4 * * * /root/shopee_tool/venv/bin/python3 /root/shopee_tool/boost_shopee.py >> /root/shopee_tool/shopee.log 2>&1

Giải thích lệnh:

  • 0 */4 * * *: Lập lịch chạy vào phút 0, mỗi 4 giờ.
  • /root/shopee_tool/venv/bin/python3: Gọi chính xác file Python bên trong môi trường ảo của dự án.
  • >> /root/shopee_tool/shopee.log 2>&1: Ghi lại toàn bộ output (và lỗi) vào file shopee.log để bạn tiện kiểm tra.

Nhấn Ctrl + X, rồi nhấn Y, và cuối cùng nhấn Enter để lưu lại. Hệ thống của bạn giờ đã hoàn toàn tự động.

(Nâng cao) Quản lý rủi ro khi mở rộng

Hệ thống trên hoạt động tốt cho 1-2 shop. Nhưng khi chạy nhiều tài khoản, bạn sẽ gặp 2 vấn đề lớn:

a. Thách thức CAPTCHA: Shopee sẽ hiển thị CAPTCHA nếu phát hiện hành vi đáng ngờ.

  • Giải pháp: Tích hợp các dịch vụ giải CAPTCHA tự động qua API (như 2Captcha). Khi script phát hiện CAPTCHA, nó sẽ gửi ảnh chụp cho dịch vụ và nhận lại kết quả.

b. Thách thức bị Blacklist IP: Chạy 20 shop từ 1 IP của VPS là cách nhanh nhất để bị khoá tài khoản hàng loạt. Các thư viện anti-bot không ẩn IP của bạn.

  • Giải pháp: Dùng Residential Proxy (Proxy Dân Cư). Bạn phải cấu hình để mỗi tài khoản Shopee chạy qua một Proxy riêng biệt. Đây là kỹ thuật bắt buộc khi scraping dữ liệu. Bạn cũng có thể tự tạo Proxy IPv4 bằng VPS Linux của riêng mình.

Bạn có thể thêm Proxy vào script bằng cách cập nhật hàm setup_driver:

# Ví dụ thêm Proxy vào hàm setup_driver
def setup_driver_with_proxy(proxy_string):
    # proxy_string có dạng: "http://user:[email protected]:8080"
    
    chrome_options = Options()
    chrome_options.add_argument("--headless")
    chrome_options.add_argument("--no-sandbox")
    # ... (các options khác) ...
    
    # Thêm dòng quan trọng này
    chrome_options.add_argument(f"--proxy-server={proxy_string}")

    driver = webdriver.Chrome(options=chrome_options)
    # ... (cấu hình stealth) ...
    return driver

Câu hỏi thường gặp (FAQ)

1. Cần VPS cấu hình bao nhiêu để chạy tool Shopee?

Để bắt đầu chạy 1-2 luồng Selenium (tức 1-2 tài khoản chạy song song), một VPS Linux với cấu hình tối thiểu 2 Core CPU và 2GB RAM là đủ. Nếu bạn muốn chạy nhiều tài khoản hơn (ví dụ 5-10 luồng), bạn sẽ cần nâng cấp RAM và CPU tương ứng (ví dụ: 4 Core, 8GB RAM) để tránh tình trạng VPS bị treo hoặc tự reboot.

2. Chạy tool Selenium trên VPS có an toàn không?

Có rủi ro. “An toàn” ở đây có hai nghĩa:

  • An toàn bảo mật: VPS của bạn an toàn nếu bạn cấu hình đúng (dùng SSH Key, cài tường lửa UFW).
  • An toàn tài khoản: Đây là rủi ro lớn hơn. Tự động hóa có thể vi phạm Điều khoản dịch vụ (ToS) của Shopee và dẫn đến khoá tài khoản. Tuy nhiên, bài viết này hướng dẫn các kỹ thuật để giảm thiểu rủi ro:
    • Sử dụng selenium-stealth để script mô phỏng hành vi người dùng thật.
    • Chạy trên VPS có IP sạch, không phải IP dùng chung bị Blacklist.
    • Dùng Residential Proxy khi chạy nhiều tài khoản để tránh bị phát hiện cùng một IP.

3. Tại sao dùng VPS Linux (Ubuntu) mà không dùng VPS Windows?

hiệu suấtchi phí. VPS Linux (Ubuntu) không có giao diện đồ họa (chạy Headless), nên nó tiêu tốn ít RAM và CPU hơn rất nhiều so với VPS Windows. Đối với một script Python chạy 24/7, VPS Linux là lựa chọn nhẹ, ổn định và tiết kiệm chi phí nhất. VPS Windows thường chỉ cần thiết khi bạn chạy các phần mềm có giao diện đồ họa (tool .exe).

4. Tại sao dùng Selenium mà không dùng Shopee Open API chính thức?

Vì Shopee Open API (tính đến 2025) không cung cấp tính năng tự động “Đẩy sản phẩm” (Boost Product). Hơn nữa, API chính thức có rào cản đăng ký, yêu cầu bạn phải là doanh nghiệp (có giấy phép kinh doanh) và đạt đủ số lượng đơn hàng tối thiểu. Selenium là giải pháp thực chiến duy nhất cho seller cá nhân muốn tự động hóa tính năng này.

5. Tôi không biết code Python có làm theo hướng dẫn này được không?

Bài viết này được thiết kế cho người dùng có nền tảng kỹ thuật (developer hoặc chủ shop am hiểu công nghệ). Nếu bạn hoàn toàn không biết code, bạn có thể gặp khó khăn ở Phần 3 (Cài đặt VPS) và Phần 4 (Debug code). Thay vào đó, bạn có thể tham khảo các công cụ auto Shopee có sẵn và thuê một VPS giá rẻ để treo chúng.

Kết luận

Tự xây dựng một hệ thống VPS chạy tool Shopee bằng Python/Selenium đòi hỏi bạn phải có kiến thức về Linux và code. Nhưng phần thưởng là hoàn toàn xứng đáng.

Thay vì phụ thuộc và trả phí hàng tháng, bạn có được một cỗ máy tự động 100%, chạy 24/7 trên một máy chủ riêng, ổn định, bảo mật và tùy biến vô hạn. Bạn đã đi từ một người sử dụng công cụ trở thành một người sở hữu công nghệ.

Bắt đầu dự án VPS chạy tool Shopee của bạn ngay hôm nay. Tham khảo các gói VPS Linux cấu hình cao, tối ưu cho developer tại VPSChinhhang!

Bài viết liên quan

Để hoàn thiện bức tranh về tự động hóa E-commerce, bạn có thể tham khảo thêm:

Tài liệu tham khảo