Решения по ценообразованию в e-commerce принимаются быстро. Конкурент снижает цену на 5%, и уже через несколько часов это замечают покупатели. Побеждают те компании, которые замечают изменения первыми.
Раньше для создания системы мониторинга цен требовалось поддерживать инфраструктуру proxy, бороться с антибот-системами и писать кастомные парсеры для каждого целевого сайта. FourA сводит всю эту сложность к одному API-вызову.
Проблема
Ручной мониторинг цен не масштабируется. Даже небольшому e-commerce бизнесу с 50 конкурентами нужно отслеживать сотни страниц товаров. При трех проверках в день это более 1000 запросов ежедневно, каждый из которых может быть заблокирован, ограничен по rate limit или сломан из-за редизайна сайта.
Подход
Вот как выглядит готовый к продакшену пайплайн мониторинга цен с FourA:
1. Определите каталог товаров
Начните со структурированного списка URL конкурентов и 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-вызовов без необходимости менять архитектуру.
С чего начать
Весь описанный выше пайплайн (без учета логики уведомлений) занимает менее 50 строк кода на Python. И как только он заработает для 50 товаров, масштабирование до 500 сведется к простому увеличению списка. API-вызов остается прежним, парсинг остается прежним, расписание остается прежним. В этом и заключается суть.
Полный пример кода доступен в руководстве How-To, а в документации API описаны все параметры, необходимые для его настройки.