Трафик прокси заканчивается быстрее, чем ожидали

Чаще всего гигабайты уходят на то, чего не видно в результате работы: картинки, шрифты, скрипты, повторы и служебные запросы. Ниже — куда именно и как это измерить.

Обновлено · Редакция Prokso

Коротко
  • Трафик считается в обе стороны, а точное гео — вдвое
  • Больше всего съедают картинки, видео, шрифты и скрипты, а также повторы запросов
  • Блокируйте лишние ресурсы, повторно используйте соединения и просите сжатие

Что означает ошибка

В Prokso трафик считается в обе стороны: и то, что программа отправляет, и то, что загружает. Для обычного парсинга основную часть даёт ответ сайта, но при выгрузке файлов, отправке форм или больших запросах к API исходящий объём тоже заметен.

Размер страницы — это не только HTML. Браузер или антидетект загружает всё, на что ссылается страница: картинки, видео, шрифты, скрипты, рекламу и счётчики. Поэтому страница с небольшим текстом может тянуть в разы больше данных, чем сам текст.

Ещё один множитель — точное гео. Регион, город, ZIP или оператор (ASN) считаются вдвое: 1 ГБ такого трафика забирает из пакета 2 ГБ. Страна — без доплаты.

Причины

  • Ресурсы страниц. Картинки, видео, шрифты и скрипты — самая тяжёлая часть типичной страницы. Headless-браузеры в Puppeteer, Playwright и Selenium загружают их так же, как обычный браузер, даже если вам нужен только текст.
  • Повторы запросов. Каждая попытка, которая успела загрузить хотя бы часть страницы, тоже трафик. Цикл без лимита повторов после капчи или ошибки 429 тихо съедает пакет.
  • Ответы без сжатия. Если программа не отправляет заголовок Accept-Encoding, сервер отдаёт текст без сжатия. Браузеры отправляют его сами, скрипты — не всегда: curl просит сжатие только с ключом --compressed.
  • Новое соединение на каждый запрос. Каждое новое HTTPS-соединение начинается с рукопожатия TLS, и эти данные тоже проходят через прокси. Без повторного использования соединений они добавляются к каждому запросу.
  • Точное гео без необходимости. Город, регион, ZIP или оператор умножают расход на два. Если задаче хватает страны, точное гео стоит выключить.

Как исправить

  1. Посчитайте ожидаемый объём: средний размер страницы × количество страниц × запас на повторы. Для оценки есть калькулятор трафика.
  2. Измерьте реальную страницу: в инструментах разработчика браузера на вкладке Network внизу видно, сколько данных передано. Для одного запроса curl покажет размер тела ответа без заголовков через -w "%{size_download}".
  3. Блокируйте ненужные ресурсы в headless-браузере: в Puppeteer — page.setRequestInterception(true) и request.abort() для картинок, шрифтов и медиа, в Playwright — page.route() с route.abort(). Настройка прокси — в инструкциях Puppeteer и Playwright.
  4. Используйте одно соединение для серии запросов: в Python — requests.Session(), которая повторно использует соединения (см. инструкцию Python requests). Ограничьте число повторов и добавьте паузу между ними.
  5. Просите сжатие: заголовок Accept-Encoding: gzip или ключ --compressed в curl. Точное гео включайте только там, где город или оператор действительно нужны; параметры логина — в справочнике шлюза.

Как проверить, что всё заработало

После изменений запустите ту же задачу на небольшой выборке и сравните остаток плана до и после в личном кабинете. Чтобы пакет не закончился неожиданно, на странице плана можно задать лимит трафика за час, сутки или неделю — останавливать работу или только предупреждать, — и включить уведомления на почту или в Telegram, когда трафик заканчивается.

Диагностика за 2 минуты

Сначала вставьте строку в проверку прокси. Если там прокси работает, причина в программе или её настройках. Если нет — проверьте строку из терминала:

curl -v -x "http://ЛОГИН:ПАРОЛЬ@gw.prokso.com:823" https://api.ipify.org
  • Строка < HTTP/1.1 407 сразу после CONNECT — отвечает прокси. Название после кода, например NO_USER, подсказывает причину.
  • Прокси ответил на CONNECT кодом 200, а дальше пришёл другой код — прокси работает, этот ответ дал сайт.
  • Никакого ответа, только тайм-аут — соединение не дошло до прокси: проверьте хост, порт и сеть.

Инструкции, где встречается эта ошибка

Читайте также

Вопросы и ответы

Считается ли трафик, если сайт ответил ошибкой?

Да. Считается всё, что прошло через прокси в обе стороны, независимо от кода ответа. Страница с капчей или ошибкой 403 тоже расходует трафик.

Почему антидетект тратит больше, чем скрипт?

Профиль антидетекта — полноценный браузер: он загружает все ресурсы страниц и делает фоновые запросы самого браузера. Скрипт берёт только то, что вы запросили.

Сгорает ли неиспользованный трафик?

Нет. Купленный трафик не имеет срока действия, поэтому остаток можно использовать позже.

Резидентские $1.59, мобильные $2.50, серверные $0.65 за 1 ГБ

Регистрация за минуту, доступы сразу после оплаты.

Создать аккаунт