proxysale

Язык

Ротационные прокси со списком, который обновляется сам

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

Синий ценник на фоне точечной карты мира со связанными узлами сети

Ротация на уровне списка

ProxySale меняет прокси через сам список. Пул весь день теряет мёртвые адреса и получает новые, и каждый раз, когда софт запрашивает ссылку, он получает набор, который работает в этот момент. Правила ротации у нас настраивать не нужно: перезагружайте ссылку раз в 8–10 минут, и список остаётся свежим.

Строку для каждого запроса выбирает ваш софт. Большинство парсеров и SEO-программ берут случайный прокси на каждый запрос или переключаются после ошибки, и нагрузка расходится по тысячам адресов.

Чем ротационные прокси помогают парсингу

Поисковики, маркетплейсы и агрегаторы цен считают запросы с каждого IP. Адрес, который шлёт сотни запросов в минуту, получает капчу или блокировку. Если разложить ту же нагрузку по списку ротационных прокси, каждый адрес отправит лишь несколько запросов, и сайт увидит картину, похожую на обычных посетителей.

Ротация прячет и мёртвые строки. Неудачный запрос софт повторяет через другой адрес, а следующая перезагрузка списка убирает плохую строку.

Как настроить ротацию в софте

  • A-Parser и ZennoPoster: добавьте ссылку на список как источник прокси с перезагрузкой раз в 10 минут.
  • Scrapy: загрузите список в downloader middleware, которая берёт случайную строку на каждый запрос.
  • Python requests: держите список в памяти и передавайте случайную строку в словаре proxies.
  • curl в bash: перед каждым вызовом берите строку через shuf -n 1.

Оставляйте перезагрузку раз в 8–10 минут. Запросы каждую минуту мы притормаживаем, да и пул так быстро не меняется.

Стратегии ротации

  • Случайная строка на каждый запрос: самая простая схема и самое ровное распределение нагрузки.
  • Одна строка на короткую серию: полезно, когда сайт ждёт несколько связанных запросов, например страницу поиска и следующую страницу выдачи.
  • Смена при ошибке: строка работает, пока отвечает, и уходит после капчи, таймаута или ответа 403.
  • Пауза для строки: после блокировки уберите адрес из ротации на 10–15 минут.

Большинство парсеров сочетают первую и третью схемы: случайная строка на запрос и немедленная смена после ошибки. Следите за долей капч и неудачных запросов. Если она растёт, добавьте адресов или снизьте скорость.

Сколько адресов нужно

Посчитайте запросы в минуту к самому строгому сайту и разделите на то, сколько спокойно выдерживает один адрес. Если сайт терпит пять запросов в минуту с одного IP, а вам нужно 5 000, рассчитывайте минимум на 1 000 живых адресов и добавьте запас на ночной спад. Большие задачи разобраны на странице прокси оптом.

Пул выбирайте по сайту: «Микс мира» для сайтов со всего мира, прокси Европы для европейских магазинов и выдачи, прокси СНГ для Яндекса и региональных маркетплейсов, прокси Китая для Baidu.

Задачи, где нужен постоянный адрес

Некоторым задачам нужен один адрес надолго: вход в аккаунты, корзина в магазине, профили антидетект-браузера. Ротационный список пакета для них неудобен: адрес в любой момент может покинуть пул. Для такой работы есть резидентные прокси пула Макс: у каждой строки своя сессия: срок вы ставите от трёх минут до суток, а держится она, пока домашнее устройство онлайн. Как настроить профили, рассказано на странице прокси для антидетекта.

Для всего, что читает открытые страницы, ротация подходит лучше и обходится дешевле в пересчёте на запрос.

Файл со списком, который обновляется раз в 10 минут

Некоторые программы читают прокси только из файла. Держите этот файл свежим небольшим скриптом, который скачивает список раз в 10 минут. Каждый скрипт ниже сначала пишет во временный файл и заменяет основной только после полной загрузки, поэтому софт никогда не прочитает недописанный или пустой список. Вместо YOUR_LIST_LINK вставьте ссылку на список из панели управления.

Linux: shell-скрипт и cron

Сохраните скрипт как /opt/proxies/update-proxies.sh, сделайте его исполняемым командой chmod +x /opt/proxies/update-proxies.sh и запустите один раз вручную. Он напишет, сколько прокси сохранил, или выведет ошибку, если ссылка не отвечает.

update-proxies.sh
#!/bin/sh
LIST_URL="YOUR_LIST_LINK"
DEST="/opt/proxies/proxies.txt"
TMP="$DEST.tmp"

mkdir -p "$(dirname "$DEST")"
if curl -fsS --max-time 60 -o "$TMP" "$LIST_URL" && [ -s "$TMP" ]; then
  mv "$TMP" "$DEST"
  echo "$(date '+%F %T') saved $(wc -l < "$DEST") proxies"
else
  rm -f "$TMP"
  echo "$(date '+%F %T') download failed, kept the old list" >&2
  exit 1
fi

Откройте расписание командой crontab -e и добавьте строку ниже. Cron будет запускать скрипт раз в 10 минут и дописывать его сообщения в лог. Запускайте от root или поменяйте оба пути на папку в домашнем каталоге.

crontab
*/10 * * * * /opt/proxies/update-proxies.sh >> /var/log/update-proxies.log 2>&1

Windows: PowerShell и планировщик заданий

Сохраните скрипт как C:\proxies\update-proxies.ps1 и один раз запустите его в PowerShell, чтобы проверить ссылку.

update-proxies.ps1
$ListUrl = "YOUR_LIST_LINK"
$Dest = "C:\proxies\proxies.txt"
$Tmp = "$Dest.tmp"

New-Item -ItemType Directory -Force -Path (Split-Path $Dest) | Out-Null
try {
    Invoke-WebRequest -Uri $ListUrl -OutFile $Tmp -UseBasicParsing -TimeoutSec 60
    if ((Get-Item $Tmp).Length -eq 0) { throw "empty list" }
    Move-Item -Force $Tmp $Dest
    $count = (Get-Content $Dest | Measure-Object -Line).Lines
    Write-Output "$(Get-Date -Format s) saved $count proxies"
} catch {
    Remove-Item $Tmp -ErrorAction SilentlyContinue
    Write-Output "$(Get-Date -Format s) download failed, kept the old list: $($_.Exception.Message)"
    exit 1
}

Создайте задание, которое запускает скрипт раз в 10 минут: вставьте команду в командную строку или PowerShell. Задание переживает перезагрузку и появится в планировщике под именем UpdateProxies. Оно работает, пока вы вошли в систему. Чтобы оно работало без входа, откройте командную строку от имени администратора и добавьте к команде /RU SYSTEM.

cmd
schtasks /Create /TN "UpdateProxies" /SC MINUTE /MO 10 /F /TR "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\proxies\update-proxies.ps1"

Удобнее мышкой? Откройте «Планировщик заданий», выберите «Создать простую задачу», укажите ежедневный триггер, затем в свойствах задачи включите «Повторять задачу каждые 10 минут» в течение «Бесконечно». Действие запускает powershell.exe с аргументами -NoProfile -ExecutionPolicy Bypass -File C:\proxies\update-proxies.ps1.

Любая система: Python

Версия на Python работает в цикле, и планировщик ей не нужен. Запустите её в терминале, внутри screen или tmux или как службу. Нужен Python 3, дополнительные пакеты не требуются.

update_proxies.py
import time
import urllib.request
from pathlib import Path

LIST_URL = "YOUR_LIST_LINK"
DEST = Path("proxies.txt")
EVERY = 600

while True:
    try:
        data = urllib.request.urlopen(LIST_URL, timeout=60).read()
        if not data.strip():
            raise ValueError("empty list")
        tmp = DEST.with_name(DEST.name + ".tmp")
        tmp.write_bytes(data)
        tmp.replace(DEST)
        print(time.strftime("%Y-%m-%dT%H:%M:%S"), "saved", len(data.split()), "proxies", flush=True)
    except Exception as error:
        print(time.strftime("%Y-%m-%dT%H:%M:%S"), "download failed, kept the old list:", error, flush=True)
    time.sleep(EVERY)

Укажите программе путь к сохранённому файлу, и она всегда будет читать список не старше 10 минут. Интервал оставьте 10 минут: более частые запросы мы притормаживаем.

Протоколы, цены и тест

Порт каждой строки безлимитного пакета принимает HTTP, HTTPS, SOCKS4 и SOCKS5, смотрите SOCKS5 прокси и HTTP прокси. Размеры и сроки собраны в прайсе, а бесплатный час любого пакета даёт поддержка на странице контактов.

Подходящие тарифы

Безлимитные пакеты · оплата за время

IPПотоки1 час1 сутки7 дней30 днейЗа 1 000 IP в суткиКупить
30 000Микс мираПопулярный2 500$4,20$51,00$275$990$1,70Купить
3 000ЕвропаПопулярный1 000$1,70$15,50$77,00$277$5,17Купить
1 000СНГ500$1,00$10,00$52,00$187$10,00Купить
200Китай300$0,50$7,00$37,00$135$35,00Купить

Тарифы за ГБ · оплата за трафик

Тариф · цена за ГБ1–9 ГБ10–49 ГБ50–99 ГБ100–499 ГБ500–999 ГБ1 000–2 000 ГБКупить
Гибрид ISPадреса провайдеров$1,49/ ГБ$1,39/ ГБ$1,29/ ГБ$1,15/ ГБ$1,05/ ГБ$0,95/ ГБКупить
Сота МобильныеПопулярныйсети 4G и 5G$3,49/ ГБ$3,19/ ГБ$2,95/ ГБ$2,69/ ГБ$2,39/ ГБ$2,15/ ГБКупить
Старт РезидентныеПопулярныйдомашние IP · страна$0,85/ ГБ$0,79/ ГБ$0,72/ ГБ$0,65/ ГБ$0,57/ ГБ$0,49/ ГБКупить

Все тарифы за ГБ

Вопросы

Как часто меняются адреса?

Пул обновляется весь день. Забирайте список раз в 8–10 минут, чтобы он оставался свежим.

Можно держать один IP на сессию?

В пакете да, пока адрес остаётся в пуле: какую строку использовать, решает ваш софт. Если нужен IP на заданный срок, берите резидентные прокси Макс: срок sticky-строки вы ставите сами, от 3 минут до суток, а домашнее устройство может уйти из сети и раньше.

Почему не перезагружать список каждую минуту?

Запросы чаще раза в несколько минут похожи на флуд, и доступ притормозят.

Как настроить автообновление списка?

Поставьте в софте загрузку списка по ссылке раз в 8–10 минут. Если софт так не умеет, обновляйте файл скриптом по расписанию: готовые варианты для cron, Планировщика Windows и Python есть в статье выше.

Чем ротация пакета отличается от ротации за ГБ?

В пакете меняется сам список: адреса уходят и приходят, а строку выбирает ваш софт. На тарифах за ГБ ротацией управляет шлюз: ротационная строка даёт новый IP на каждый запрос, sticky-строка держит адрес по session ID.

Почему часть адресов списка не отвечает?

Список меняется в течение дня, и адрес мог уйти из пула после вашей последней загрузки. Свежая выгрузка раз в 8–10 минут держит долю мёртвых строк низкой.

Начните с часа или с гигабайта

Проверьте пакет бесплатным часом после верификации или купите 1 ГБ любого тарифа за ГБ, прогоните свой софт и оставьте формат, который подходит задаче.

Открыть панель управления