Ротация или липкая сессия
Три варианта «Режима выхода» решают, держит ли резидентный прокси один IP или меняет его; новые прокси стартуют с липкого.
Посчитайте число потоков по нужной скорости запросов, затем увеличивайте по шагам и следите за ошибками.
Лимит параллельных соединений (потоков) — это число соединений, которые тариф позволяет держать открытыми одновременно. Если разрешено 50, а вы открыли 80, лишние будут отклонены или встанут в очередь, это зависит от провайдера. Лимит касается одновременности, а не общего числа ГБ или запросов.
На страницах тарифов это называют по-разному (потоки, сессии, одновременные соединения), поэтому сравнивайте формулировки, а не только цифры.
| Пункт | Запросов в минуту | Среднее время запроса | Соединений одновременно |
|---|---|---|---|
| Лёгкая проверка | 60 | 1 с | 60 ÷ 60 × 1 = 1 |
| Ровный сбор данных | 600 | 2 с | 600 ÷ 60 × 2 = 20 |
| Медленный сайт | 600 | 5 с | 600 ÷ 60 × 5 = 50 |
| Высокая скорость | 3 000 | 2 с | 3 000 ÷ 60 × 2 = 100 |
Соединений одновременно = запросов в секунду × среднее время запроса в секундах. Числа — для примера расчёта; время ответа измерьте у себя через прокси и добавьте запас на повторы.
import time
from concurrent.futures import ThreadPoolExecutor, as_completed
from urllib.parse import quote
import requests
user = quote("USERNAME", safe="")
password = quote("PASSWORD", safe="")
proxy = f"http://{user}:{password}@proxy.proxy302.com:2222"
proxies = {"http": proxy, "https": proxy}
WORKERS = 20 # start from your calculation, not from the maximum
def fetch(url):
started = time.monotonic()
r = requests.get(url, proxies=proxies, timeout=(5, 20))
return r.status_code, time.monotonic() - started
urls = ["https://example.com/"] * 200 # replace with your own URLs
with ThreadPoolExecutor(max_workers=WORKERS) as pool:
futures = [pool.submit(fetch, u) for u in urls]
for f in as_completed(futures):
try:
status, seconds = f.result()
except requests.RequestException as exc:
print("error", type(exc).__name__)
else:
print(status, round(seconds, 2))Только пример. Подставьте USERNAME и PASSWORD из раздела «Мои активы». ThreadPoolExecutor(max_workers=N) выполняет не больше N вызовов одновременно. Каждый requests.get открывает своё соединение, поэтому при ротации новое соединение может означать новый IP.
В Node.js идея та же: фиксируйте число запросов в полёте и запускайте следующий, когда один завершился. Настройка прокси в Node.js (HTTP и SOCKS5) описана в руководстве по Node.js.
На любом языке задавайте жёсткий предел числа запросов в полёте в коде и не запускайте всё сразу.
Начните с числа из таблицы, а не с максимума. Отправьте несколько сотен запросов и запишите коды ответов и время.
Удвойте число потоков и повторите. Когда растут таймауты, ответы HTTP 429 или 403, остановитесь: так сайт показывает свой предел.
На 429 и 5xx делайте паузу, учитывайте заголовок Retry-After, если сайт его присылает, и соблюдайте правила и лимиты сайта. От числа потоков сайт не начнёт разрешать больше запросов.
Резидентские линии Proxy302 не ограничивают число параллельных соединений, в проверке 11 ноября 2026 года 100 одновременно открытых соединений работали. Это утверждение про лимит, а не про скорость.
Два практических замечания. Чем выше параллельность, тем быстрее уходят ГБ, потому что оплата идёт за ГБ при любом числе потоков. И без сессии каждое новое соединение получает новый IP, поэтому пул потоков с множеством соединений использует много IP, а повторно используемое (keep-alive) соединение сохраняет свой IP.
Запросы в секунду × среднее время запроса в секундах. Для 10 запросов в секунду по 2 секунды это около 20.
На резидентских линиях лимита нет. Мы проверяли 100 одновременно открытых соединений, все работали. Это не обещание скорости.
Сайт ограничивает частоту ваших запросов. Уменьшите число потоков, добавьте паузу или откат и проверьте правила сайта.
Цена за ГБ не меняется, но ГБ тратятся быстрее, потому что за то же время уходит больше запросов.
Наблюдение за продуктом · Проверено:
Product facts file of the site, checked 10 November 2026 against the console, the backend and the price table: rotating residential Budget and Premium per-GB prices and packages (1 PTC = US$1), no expiry of purchased traffic, protocols and ports, no free trial.
Официальная документация · Проверено:
Read on 12 November 2026: ThreadPoolExecutor runs calls on a pool of at most max_workers threads; the default is min(32, os.cpu_count() + 4) since Python 3.8; as_completed yields futures as they finish; thread pools are meant to overlap I/O.
Наблюдение за продуктом · Проверено:
Test of 11 November 2026 on rotating residential: 100 connections open at the same time, all of them worked. No concurrent-connection cap is set on the residential lines. This says nothing about speed.
Создайте аккаунт, пополните баланс и выберите ротируемый резидентный, статический ISP или дата-центр IP — настроить его в браузере можно за несколько минут.