Решенията за ценообразуване в електронната търговия се вземат бързо. Конкурент намалява цената си с 5% и в рамките на часове клиентите забелязват. Компаниите, които печелят, са тези, които забелязват първи.
Създаването на система за мониторинг на цените преди изискваше поддръжка на proxy инфраструктура, справяне с anti-bot системи и писане на персонализирани scrapers за всеки целеви сайт. FourA съкращава тази сложност до една единствена API заявка.
Проблемът
Ръчната проверка на цените не е мащабируема. Дори малък бизнес за електронна търговия с 50 конкуренти трябва да проследява стотици продуктови страници. При три проверки на ден това са над 1000 requests дневно, всяка от които потенциално блокирана, с наложен rate limit или счупена от промяна в дизайна на сайта.
Подходът
Ето как изглежда един готов за производствена среда pipeline за мониторинг на цени с FourA:
1. Дефинирайте своя продуктов каталог
Започнете със структуриран списък с URLs на конкуренти и CSS селекторите, където се появяват цените:
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. Извличане и парсване
FourA се справя с трудните части: TLS fingerprinting, proxy ротация и JavaScript рендиране. Вашият код просто изпраща URL и получава обратно 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. Проследяване на промените във времето
Съхранявайте резултатите в база данни или CSV. Маркирайте значителните промени за известия:
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. Планиране с Cron
Стартирайте инструмента за проследяване на всеки час или на всеки няколко часа в зависимост от волатилността на цените на вашия пазар.
Защо това работи
- Без инфраструктура за поддръжка. Без proxy сървъри, без ферми за браузъри, без логика за ротация на IP адреси.
- Адаптира се към промени в защитата. Типът proxy на FourA автоматично опитва отново през различни маршрути, когато някой бъде блокиран.
- Мащабира се линейно. Добавянето на още 100 продукта е просто още 100 API заявки без нужда от архитектурни промени.
Начало
Целият pipeline по-горе (без логиката за известяване) работи в под 50 реда на Python. И след като заработи за 50 продукта, мащабирането до 500 е просто по-дълъг списък. API заявката остава същата, парсването остава същото и планирането остава същото. Това е цялата идея.
Пълният примерен код е наличен в How-To ръководството, а API документацията покрива всеки параметър, който ще трябва да персонализирате.