Проксі для моніторингу цін

Пули МІКС до 25 000 IP і безлімітний трафік: знімайте ціни з маркетплейсів і магазинів конкурентів хоч щогодини, картки товарів в обсяг не впираються. Код країни в кожної адреси дає регіональні ціни. Година тесту коштує $1.

  • Трафік не тарифікується
  • Пул перевіряється кожні 5 хвилин
  • Повернення на пакетах від 3 діб
До цін
Цінники товарів з десятків вітрин стікаються в один вузол проксі-пулу

Ціна за ваш обсяг

Оберіть пакет, посуньте строк і кількість потоків. Потік дорівнює одній картці товару, яку монітор завантажує в цю мить: 500 потоків це 500 сторінок за раз.

MIX-Elite створений для репрайсингу і зняття за розкладом кожні 15 хвилин: сотні тисяч карток, повні каталоги конкурентів, ціни за країнами. Це найбільший пул, 25 000 адрес, і єдиний пакет, де потоки докуповуються до 9 900.

1 місяць
1 500

Потік — одне одночасне з'єднання. Більше потоків — більше зроблено за той самий час.

$150
≈ $5 / деньза 30 днів

$150 за місяцьбез доплати за потоки

економія $450 до подобової
ТАКповернення залишку
  • 1 година — $1
  • 1 день — $20
  • 3 дні — $40
  • 1 тиждень — $70
  • 2 тижні — $100
  • 1 місяць — $150
  • 3 місяці — $360
  • 6 місяців — $675
Купити проксі — MIX-Elite

Як підключити проксі до монітора цін

  1. 1
    Купіть годину за $1 і вкажіть IP сервера, де працює монітор.

    Білий список відкриває доступ самому серверу: логін і пароль монітору вводити нікуди й нема чого. Адрес у списку до десяти.

  2. 2
    Скопіюйте з кабінету посилання на список проксі.

    Відповідь приходить текстом: адреса і порт, по одному проксі в рядку. Те саме посилання з .csv наприкінці віддає список із кодом країни в кожної адреси, він потрібен, коли ціни залежать від регіону.

  3. 3
    Завантажте посилання в монітор як джерело проксі.

    A-Parser, ZennoPoster і більшість парсерів цін приймають список за посиланням і перечитують його самі. Власний монітор на Python збирається з прикладу нижче.

  4. 4
    Виставте потоки монітора не вище за кількість портів у пакеті.

    Basic дає 500 портів, Business 1 000, Elite 1 500. Кожен порт це окремий проксі, одна картка завантажується через один порт.

  5. 5
    Знімайте ціну з розмітки сторінки, а не з екрана.

    У більшості вітрин ціна лежить у даних schema.org всередині HTML, і одна картка це один запит без картинок і скриптів. Скрипт нижче бере її звідти.

Так ціни знімаються з Python. Скрипт читає адреси товарів із products.txt, завантажує кожну картку через випадковий проксі зі списку, дістає ціну з розмітки schema.org і дописує рядок у prices.csv. PROXY_LIST_URL_FROM_DASHBOARD замініть на посилання з кабінету, решту можна не чіпати.

# pip install requests[socks]
import json, random, re, time, requests

PROXY_LIST_URL = "PROXY_LIST_URL_FROM_DASHBOARD"
REFRESH_SEC = 600
HEADERS = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0 Safari/537.36",
           "Accept-Language": "en-US,en;q=0.9"}

_pool, _loaded = [], 0

def pool():
    global _pool, _loaded
    if time.time() - _loaded > REFRESH_SEC:
        text = requests.get(PROXY_LIST_URL, timeout=15).text
        _pool = [line.strip() for line in text.splitlines() if ":" in line]
        _loaded = time.time()
    return _pool

def fetch(url, tries=3):
    for _ in range(tries):
        proxy = random.choice(pool())
        try:
            r = requests.get(url, headers=HEADERS, timeout=15,
                             proxies={"http": f"socks5h://{proxy}", "https": f"socks5h://{proxy}"})
            if r.status_code == 200:
                return r.text
        except requests.RequestException:
            pass
        time.sleep(2)
    return ""

def offers(node, currency=""):
    if isinstance(node, dict):
        currency = node.get("priceCurrency", currency)
        if "price" in node:
            yield node["price"], currency
        for value in node.values():
            yield from offers(value, currency)
    elif isinstance(node, list):
        for item in node:
            yield from offers(item, currency)

def price(html):
    for block in re.findall(r'<script[^>]*type="application/ld\+json"[^>]*>(.*?)</script>', html, re.S):
        try:
            data = json.loads(block)
        except ValueError:
            continue
        for value, currency in offers(data):
            return str(value), currency
    return "", ""

with open("prices.csv", "a") as out:
    for url in open("products.txt"):
        url = url.strip()
        if url:
            value, currency = price(fetch(url))
            out.write(f"{int(time.time())};{url};{value};{currency}\n")
            print(url, value, currency)

Який пакет узяти під моніторинг цін

MIX-Basic

8 000 IP · 500–900 потоків

від $50 на місяць

Один магазин, зняття раз на добу. Беріть його, коли карток тисячі, а звіт потрібен до ранку.

MIX-Business

16 000 IP · 1 000–1 400 потоків

від $100 на місяць

Пакет для аналітиків і сервісів: кілька майданчиків, десятки тисяч карток, зняття кілька разів на день.

MIX-Elite

25 000 IP · 1 500–9 900 потоків

від $150 на місяць

Пакет для репрайсингу: каталоги цілком, зняття кожні 15 хвилин, потоки до 9 900.

П'ять налаштувань, що бережуть пул

  • Одна картка через один проксі, наступна через інший. Вітрина рахує запити з адреси, а не з акаунта.
  • Качайте лише HTML картки: картинки, скрипти і стилі монітору не потрібні, а часу на них іде в рази більше.
  • Відповідь 403, 429 або сторінка з капчею: відкладіть цей проксі на 10 хвилин і повторіть картку через інший.
  • Тримайте паузу у 2–3 секунди між запитами до однієї вітрини з однієї адреси, навіть коли потоків багато.
  • Раз на 10 хвилин завантажуйте список заново, тоді монітор не ходитиме на адреси, які перевірка вже відсіяла.

Питання про проксі для моніторингу цін

01Скільки карток на добу витримає пул?
Вітрина рахує запити з одного IP. З паузами одна адреса переносить кілька десятків карток на добу, тож 8 000 адрес Basic закривають сотні тисяч карток, 25 000 у Elite кратно більше. Точну цифру для свого майданчика зніміть за годину тесту: частка капчі та відповідей 403 видна одразу.
02Чи підходять проксі для Rozetka, Prom і Amazon?
Так, за однієї умови: розподіляйте запити по всьому пулу і тримайте паузи, бо кожен із цих майданчиків рахує частоту з однієї адреси. Для повних каталогів беріть Business або Elite, там запас адрес більший.
03Трафік справді безлімітний?
Так. Пакет оплачується за строк і кількість потоків, обсяг завантаженого не рахується. Каталог на мільйон карток коштує стільки ж, скільки сотня.
04За якими IP відкривається доступ?
За тими, що ви внесли в кабінеті: проксі пускають запити лише з цих адрес, до десяти штук на акаунт, і логін із паролем не потрібні. Переїхав монітор на інший сервер: поміняли адресу в списку, та й усе.
05Як зняти ціни для іншої країни?
Маркетплейси показують ціну і наявність за країною адреси. Те саме посилання з .csv наприкінці віддає таблицю з колонками ip, port, country, speed, uptime, real_ip, роздільник крапка з комою, країна дволітерним кодом. Скрипт нижче відбирає адреси потрібних країн і пише їх у файл для монітора. У прикладі США і Велика Британія, замініть коди на свої.
import csv, io, requests

CSV_URL = "PROXY_LIST_URL_FROM_DASHBOARD.csv"
COUNTRIES = {"us", "gb"}
OUT_FILE = "proxies_us_gb.txt"

text = requests.get(CSV_URL, timeout=15).text
rows = csv.DictReader(io.StringIO(text), delimiter=";")
picked = [f"{r['ip']}:{r['port']}" for r in rows if r["country"].lower() in COUNTRIES]

with open(OUT_FILE, "w") as f:
    f.write("\n".join(picked) + "\n")
print(f"{len(picked)} proxies saved to {OUT_FILE}")
06Як перевірити пул до покупки на місяць?
Спочатку година за $1: за неї видно, як майданчик реагує на пул. Пакет від 3 діб можна скасувати в кабінеті будь-якого дня, використаний час перерахують за звичайним тарифом, залишок повернеться на баланс.

Загальні питання про сервіс розібрані в загальному FAQ, повна сітка тарифів на головній.

Почніть з години за $1

За годину видно, скільки карток на добу зніме ваш монітор без капчі. Строк обирайте після; на пакетах від 3 діб невикористаний залишок повертається.

Проксі на тест за $1
ВХІД/РЕЄСТРАЦІЯ