← Tất cả bài viết

Xây dựng hệ thống theo dõi giá theo thời gian thực với FourA

Giá của đối thủ cạnh tranh thay đổi theo từng giờ. Dưới đây là cách xây dựng hệ thống theo dõi giá tự động trên hàng trăm trang sản phẩm chỉ với một API call duy nhất và Python cơ bản.

Các quyết định về giá trong thương mại điện tử diễn ra rất nhanh. Đối thủ giảm giá 5% và chỉ trong vài giờ, khách hàng đã nhận ra. Những doanh nghiệp chiến thắng là những bên phát hiện ra đầu tiên.

Trước đây, việc xây dựng một hệ thống theo dõi giá đòi hỏi phải duy trì hạ tầng proxy, xử lý hệ thống phát hiện bot và viết scraper tùy chỉnh cho từng trang web mục tiêu. FourA gói gọn sự phức tạp đó vào một lệnh gọi API duy nhất.

Vấn đề

Kiểm tra giá thủ công không thể mở rộng quy mô. Ngay cả một doanh nghiệp thương mại điện tử nhỏ với 50 đối thủ cạnh tranh cũng cần theo dõi hàng trăm trang sản phẩm. Với tần suất ba lần kiểm tra mỗi ngày, con số này lên tới hơn 1.000 request hàng ngày, mỗi request đều có nguy cơ bị chặn, bị giới hạn rate limit hoặc bị lỗi do trang web thay đổi giao diện.

Cách tiếp cận

Dưới đây là cấu trúc của một pipeline theo dõi giá sẵn sàng cho môi trường production với FourA:

1. Xác định danh mục sản phẩm của bạn

Bắt đầu với một danh sách có cấu trúc gồm các URL của đối thủ và CSS selector nơi hiển thị giá:

products = [
    {"sku": "WDG-001", "competitor": "Store A", "url": "https://store-a.com/widget", "selector": ".price-current"},
    {"sku": "WDG-001", "competitor": "Store B", "url": "https://store-b.com/products/widget", "selector": "[data-price]"},
]

2. Lấy dữ liệu và phân tích cú pháp

FourA xử lý các phần phức tạp: fingerprinting TLS, xoay vòng proxy và render JavaScript. Mã của bạn chỉ cần gửi một URL và nhận lại HTML:

import requests
from bs4 import BeautifulSoup

def get_price(product):
    resp = requests.post("https://eu.api.foura.ai/api/v1/tasks", headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    }, json={"url": product["url"], "type": "proxy"})
    
    html = resp.json()["content"]
    soup = BeautifulSoup(html, "html.parser")
    el = soup.select_one(product["selector"])
    return float(el.text.strip().replace("$", "").replace(",", "")) if el else None

3. Theo dõi thay đổi theo thời gian

Lưu kết quả vào cơ sở dữ liệu hoặc CSV. Đánh dấu các thay đổi quan trọng để gửi cảnh báo:

if abs(new_price - last_price) / last_price > 0.03:  # 3% threshold
    send_alert(f"{product['competitor']} changed {product['sku']} from ${last_price} to ${new_price}")

4. Lên lịch với Cron

Chạy tracker mỗi giờ hoặc vài giờ một lần tùy thuộc vào mức độ biến động giá trên thị trường của bạn.

Tại sao giải pháp này hiệu quả

  • Không cần bảo trì hạ tầng. Không cần máy chủ proxy, không cần browser farm, không cần xử lý logic xoay vòng IP.
  • Thích ứng với các thay đổi về bảo mật. Loại proxy của FourA sẽ tự động thử lại qua các tuyến khác nhau khi một tuyến bị chặn.
  • Mở rộng tuyến tính. Theo dõi thêm 100 sản phẩm chỉ đơn giản là thực hiện thêm 100 lệnh gọi API mà không cần thay đổi kiến trúc.

Bắt đầu thực hiện

Toàn bộ pipeline ở trên (không tính logic gửi cảnh báo) hoạt động chỉ với chưa đầy 50 dòng mã Python. Và khi hệ thống đã chạy ổn định cho 50 sản phẩm, việc mở rộng lên 500 sản phẩm chỉ là mở rộng danh sách. Lệnh gọi API vẫn giữ nguyên, logic phân tích cú pháp vẫn giữ nguyên, và việc lên lịch cũng giữ nguyên. Đó chính là mấu chốt.

Mã nguồn ví dụ đầy đủ có sẵn trong hướng dẫn How-To, và tài liệu API cung cấp chi tiết mọi tham số bạn cần để tùy chỉnh.