Як зекономити на проксі: 8 робочих способів
Реалістичні методи зменшення витрат на проксі 30-70% без втрати якості: оптимізація трафіку, volume-discounts, перехід на правильний тип, час підписки.
1. Блокувати непотрібні ресурси (економія 60-80%)
Найбільший win. На середньому веб-сайті ~70% bandwidth — це images, CSS, fonts, відео. Якщо парсите тільки текст або структуровані дані, блокуйте все це:
// Puppeteer
await page.setRequestInterception(true);
page.on('request', req => {
if (['image', 'stylesheet', 'font', 'media'].includes(req.resourceType())) {
req.abort();
} else {
req.continue();
}
});
Економія: 10 GB/день → 2-3 GB/день. На residential $2/GB це $240/міс економії.
2. Перехід на правильний тип проксі
Чимало команд переплачують за residential там, де datacenter справиться:
- API-інтеграції без antibot — datacenter ($0.5/GB), economy ~5×
- Парсинг публічних JSON-endpoints — datacenter
- Internal tooling — datacenter
Гайд по типах проксі: читати
3. Volume і річний discount
Майже всі провайдери дають discount за об'єм:
- SOAX — від 100 GB знижка 15-20%
- Decodo — річна підписка -25%
- Bright Data — кастомні плани від $1000/міс з 30%+ discount
Якщо плануєте 6+ місяців роботи — переходьте на річну підписку. Економія 25%.
4. Локальне кешування
Не запитуйте те саме двічі. Простий Redis-кеш з TTL 1-7 днів економить 30-50% запитів на типових scraping-задачах:
import redis
import hashlib
cache = redis.Redis()
def fetch_cached(url, ttl=86400):
key = 'http:' + hashlib.md5(url.encode()).hexdigest()
cached = cache.get(key)
if cached:
return cached.decode()
data = fetch_via_proxy(url)
cache.setex(key, ttl, data)
return data
5. Завжди вмикайте gzip
Один header економить 60-80% bandwidth:
headers = {'Accept-Encoding': 'gzip, deflate, br'}
requests.get(url, headers=headers, ...)
Більшість сучасних бібліотек автоматично декодують gzip-відповіді. Деякі провайдери рахують stream після decompression — read tos уважно.
6. Власний rate-limit замість retry на 429
Якщо знаєте, що target має ~5 req/sec ліміт — обмежуйте свого клієнта на 4 req/sec, замість того щоб ловити 429 і ретраїти. Кожен retry — це повний bandwidth witespent.
import asyncio
sem = asyncio.Semaphore(4)
async def fetch(url):
async with sem:
await asyncio.sleep(0.25) # max 4 req/sec
return await aiohttp_fetch(url)
7. Pay-as-you-go vs підписка
Якщо споживання нерегулярне (один великий research раз на місяць) — pay-as-you-go дешевше:
- Decodo PAYG: $4/GB
- Decodo місячна 50 GB: $200/міс = $4/GB якщо використаєте все. Якщо використаєте 20 GB — це $10/GB реальної ціни.
Просте правило: якщо споживаєте менше 80% місячного об'єму — переходьте на pay-as-you-go.
8. Mixed strategy: різні провайдери для різних задач
Не використовуйте один сервіс для всього. Реалістична команда має 3-4 акаунти:
- Webshare ($0.65/GB datacenter) — для бекенд-інтеграцій
- Decodo ($2.20/GB residential) — для повсякденного scraping
- Bright Data ($5/GB residential) — для anti-bot захищених таргетів (Datadome)
- iProxy.online ($25/порт mobile) — для multi-account
Mixed strategy економить 40-60% порівняно з універсальним рішенням.
Економія на проксі — це не вибір "найдешевшого", а правильне використання різних типів під різні задачі. Часто переплата на якісному residential окупається економією на retry-логіці і time-to-completion.