Проксі для моніторингу цін
Моніторинг цін конкурентів є важливою частиною стратегії електронної комерції. Проксі допомагають збирати дані про ціни без блокувань.
Навіщо потрібен моніторинг цін
- Конкурентоспроможне ціноутворення — підтримуйте ціни на ринковому рівні
- Виявлення розпродажів — реагуйте на знижки конкурентів
- Аналіз тенденцій — розумійте динаміку ринку
- Дотримання MAP — відстежуйте дотримання мінімальної ціни
Навіщо потрібні проксі
Сайти електронної комерції активно захищаються від парсингу:
- Обмеження частоти запитів
- CAPTCHA
- Блокування IP
- Аналіз поведінки
Архітектура рішення
┌─────────────────┐ ┌──────────────┐ ┌─────────────┐
│ Your Server │────▶│ Proxy Pool │────▶│ Competitor │
│ (script/crawler)│ │ (Residential)│ │ Sites │
└─────────────────┘ └──────────────┘ └─────────────┘
│ │
└──────────── Price Data ◀─────────────────┘
Стратегія збору даних
1. Вибір проксі
- Резидентні проксі для захищених сайтів (Amazon, eBay)
- Датацентрові проксі для простих сайтів
- Геотаргетинг для регіональних цін
2. Ротація IP
# New IP for each product
for product_url in products:
proxy = get_rotating_proxy()
price = scrape_price(product_url, proxy)
save_price(product_url, price)
3. Імітація поведінки
import random
import time
# Random delays
time.sleep(random.uniform(2, 5))
# Different User-Agents
headers = {'User-Agent': random.choice(user_agents)}
Приклад коду
import requests
from bs4 import BeautifulSoup
def get_price(url, proxy):
proxies = {
'http': f'http://user:pass@{proxy}',
'https': f'http://user:pass@{proxy}'
}
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...'
}
response = requests.get(url, proxies=proxies, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')
# Amazon example
price = soup.select_one('.a-price-whole')
return price.text if price else None
# Usage with rotation
from gproxy import ProxyPool
pool = ProxyPool(api_key='your_key')
for product in products:
proxy = pool.get_proxy(country='US')
price = get_price(product['url'], proxy)
print(f"{product['name']}: ${price}")
Рекомендації
- Розподіляйте навантаження — не більше 1 запиту на секунду на домен
- Використовуйте кешування — не парсіть одну й ту ж URL-адресу часто
- Контролюйте якість — перевіряйте актуальність даних
- Дотримуйтесь robots.txt — або будьте готові до наслідків
- Зберігайте історію — для аналізу тенденцій
Інструменти
- Scrapy + проксі-мідлвер
- Selenium для рендерингу JS
- Playwright як альтернатива
- Готові рішення: Price2Spy, Prisync