Decyzje cenowe w e-commerce zapadają szybko. Konkurent obniża cenę o 5% i w ciągu kilku godzin klienci to zauważają. Wygrywają te firmy, które dowiedzą się o tym pierwsze.
Budowanie systemu monitorowania cen wymagało kiedyś utrzymywania infrastruktury proxy, walki z systemami antybotowymi i pisania dedykowanych scraperów dla każdej witryny. FourA sprowadza całą tę złożoność do jednego wywołania API.
Problem
Ręczne sprawdzanie cen się nie skaluje. Nawet mały sklep e-commerce z 50 konkurentami musi śledzić setki stron produktów. Przy trzech sprawdzeniach dziennie daje to ponad 1000 requestów na dobę, z których każdy może zostać zablokowany, objęty rate limit lub przestać działać przez zmianę wyglądu strony.
Podejście
Oto jak wygląda gotowy do wdrożenia produkcyjnego proces monitorowania cen z FourA:
1. Zdefiniuj katalog produktów
Zacznij od ustrukturyzowanej listy adresów URL konkurencji i selektorów CSS, w których pojawiają się ceny:
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. Pobieranie i parsowanie
FourA zajmuje się najtrudniejszymi zadaniami: fingerprintingiem TLS, rotacją proxy i renderowaniem JavaScript. Twój kod po prostu wysyła URL i odbiera 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. Śledzenie zmian w czasie
Zapisuj wyniki w bazie danych lub pliku CSV. Oznaczaj znaczące zmiany, aby wyzwalać alerty:
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. Harmonogramowanie za pomocą Cron
Uruchamiaj monitor co godzinę lub co kilka godzin, w zależności od zmienności cen na Twoim rynku.
Dlaczego to działa
- Brak infrastruktury do utrzymania. Brak serwerów proxy, farm przeglądarek czy logiki rotacji adresów IP.
- Dostosowanie do zmian w zabezpieczeniach. Typ proxy w FourA automatycznie ponawia próby przez inne trasy, gdy jedna zostanie zablokowana.
- Skalowanie liniowe. Dodanie kolejnych 100 produktów to po prostu 100 kolejnych wywołań API, bez konieczności wprowadzania zmian w architekturze.
Jak zacząć
Cały powyższy proces (bez logiki alertów) mieści się w niecałych 50 liniach kodu w Pythonie. A kiedy działa już dla 50 produktów, skalowanie do 500 wymaga jedynie wydłużenia listy. Wywołanie API pozostaje bez zmian, parsowanie pozostaje bez zmian i harmonogramowanie pozostaje bez zmian. O to właśnie chodzi.
Pełny przykładowy kod jest dostępny w poradniku How-To, a dokumentacja API opisuje każdy parametr potrzebny do jego dostosowania.