Как настроить прокси в ZennoPoster: Set proxy, ProxyChecker и многопоточность

В ZennoPoster прокси подключается к браузеру действием Set proxy в ProjectMaker: оно ставится перед первой загрузкой страницы, а в поле вводится строка вида http://login:password@host:port или socks5://login:password@host:port. Для больших списков есть ZennoProxyChecker — он импортирует, проверяет и раздает прокси шаблонам через действие Get proxy.
Само подключение — самая простая часть. Основная работа в многопоточном шаблоне — решить, какой поток получает какой адрес, удерживать стабильные прокси за аккаунтами, отсеивать мертвые серверы до того, как они остановят запуск, и правильно разбирать ошибку 407. Ниже — все это, а также HTTP-запросы, которые не используют прокси браузера: этот момент многие инструкции пропускают.
Дата-центровые прокси
Быстрые дата-центровые прокси для многопоточных шаблонов ZennoPoster
Какие прокси выбрать для ZennoPoster
До покупки определите, как шаблон будет использовать адреса:
- Короткие независимые задачи — проверка страниц, сбор открытых данных — хорошо работают с ротационным шлюзом или большим пулом.
- Сессии аккаунтов требуют один адрес на аккаунт на недели; смена посреди сессии приводит к повторным входам.
- Много потоков — значит, адресов должно хватать, чтобы потоки не выстраивались в очередь на один IP.
| Тип | Скорость | Стабильность IP | Где используют в шаблонах |
|---|---|---|---|
| Дата-центровые | Самая высокая | Постоянный | Быстрый парсинг, технические проверки |
| Резидентские ротационные | Средняя | Меняется на запрос или сессию | Сайты со строгой антибот-защитой |
| ISP (статические резидентские) | Высокая | Постоянный месяцами | Долгие сессии аккаунтов |
| Мобильные | Плавающая | Меняется при ротации | Платформы, ориентированные на смартфоны |
Быстрые и недорогие дата-центровые прокси закрывают большинство шаблонов для парсинга. Если сайт придирчив к происхождению IP, лучше подойдут резидентские или ISP-адреса; чем они отличаются, рассказано в инструкции по настройке ISP-прокси.
HTTP или SOCKS5
ZennoPoster работает с обоими протоколами. HTTP(S) подходит для браузерного трафика и веб-запросов — а это большая часть работы шаблонов. SOCKS5 передает любые TCP-соединения и удобен, если тот же прокси обслуживает и другие программы. Если провайдер дает оба порта, проверьте каждый; выбрать поможет сравнение SOCKS5 и HTTP-прокси.
Как добавить один прокси через Set proxy
Шаг 1. Откройте шаблон в ProjectMaker
Запустите ProjectMaker и откройте проект или запишите новый.
Шаг 2. Вставьте действие перед первой загрузкой страницы
Щелкните правой кнопкой по рабочему полю, выберите Добавить действие → Браузер → Настройки и затем Установить прокси (в английском интерфейсе — Add action → Browser → Settings → Set proxy). Соедините блоки так, чтобы действие выполнялось раньше любого Перейти на страницу: страница, открытая до него, пойдет через старое подключение.

Шаг 3. Введите строку прокси
В документации ZennoLab приведены такие форматы:
socks5://login:password@192.0.2.88:1080
http://login:password@192.0.2.88:8000
http://192.0.2.88:8000
login:password@192.0.2.88:8000Если протокол не указан, ZennoPoster считает прокси HTTP. Вариант Other открывает отдельные поля для типа, адреса, порта, логина и пароля. Во всех полях можно использовать переменные — например, {-Variable.proxy-} вместо фиксированного значения.

Шаг 4. Проверьте
Добавьте после Set proxy действие перехода на любой сайт проверки IP и выполните проект пошагово. На странице должен отобразиться адрес прокси.
Подвох: у HTTP-запросов свой прокси
Set proxy меняет только встроенный браузер. Действия, работающие без браузера, — GET-запрос и POST-запрос — имеют собственное поле прокси. Если шаблон сочетает браузерные шаги и прямые запросы, передайте ту же переменную и туда, иначе часть трафика уйдет с вашего настоящего IP.
Массовые списки через ZennoProxyChecker
ZennoProxyChecker входит в комплект ZennoPoster и рассчитан на большие списки:
- Подготовьте файл. По одному прокси в строке:
ip:portдля открытых илиlogin:password@ip:portдля прокси с авторизацией. Уберите пустые строки и лишние пробелы. - Добавьте источник. На вкладке Sources добавьте файл (или веб-страницу со списком). В настройках источника задается, как разбирать и проверять прокси.
- Создайте правила проверки. В расширенных настройках источника добавьте правило, которое открывает целевой URL через каждый прокси и ищет на странице ожидаемый текст. На вкладке Rules соберите фильтры — например, уровень анонимности плюс пройденная проверка URL.
- Запустите проверку на вкладке Control.
- Передавайте прокси в шаблоны действием Get proxy. Выберите правило и отметьте удаление прокси из живого списка (Delete proxy from the live list), если каждый адрес должен достаться только одному потоку.
Отдельные серверы удобно проверить и вне программы — в бесплатном онлайн-чекере прокси.
Как закрепить прокси за аккаунтом
Для долгих сессий храните прокси рядом с данными аккаунта: одна строка таблицы или списка на аккаунт — логин, пароль, строка прокси. В начале шаблона:
- Возьмите строку аккаунта операцией с таблицей или списком.
- Разберите ее на переменные, например
{-Variable.acc_login-}и{-Variable.proxy-}. - Передайте
{-Variable.proxy-}в Set proxy и во все GET- и POST-действия.
Аккаунт всегда заходит с одного адреса, и сессии с проверками безопасности остаются спокойными. Когда постоянный адрес лучше меняющегося, разобрано в обзоре ротации IP-адресов.
Как распределить прокси между потоками
Когда двадцать потоков одновременно читают один список, двое могут взять одну и ту же строку. Как этого избежать:
- Взять и удалить. В операции со списком, которая выдает прокси, включите удаление строки после чтения — следующий поток получит следующий адрес.
- Заблокировать общий ресурс. Если пул хранится в глобальной переменной или в C#-сниппете, оборачивайте доступ в lock, чтобы менять его мог только один поток за раз.
- Распределить заранее. Сопоставьте прокси с аккаунтами и сохраняйте это соответствие между запусками.
- Шлюз. С ротационным шлюзом все потоки могут использовать один входной адрес — провайдер сам разносит соединения по пулу.
Проверка реального IP внутри шаблона
Добавьте перед основной логикой проверочную ветку: GET-запрос к сервису, возвращающему IP, через тот же прокси, сохранение ответа в переменную и сравнение с ожидаемым адресом. Так ловятся прокси, которые молча не подключились, потоки, получившие чужую строку, и несработавшая авторизация. Записывайте в лог прокси, внешний IP, время, результат и число повторов для каждого запуска.
Ошибки и решения
407 Proxy Authentication Required. Неверный логин или пароль, нарушен формат строки или провайдер ожидает авторизацию по IP. Сверьте строку посимвольно и способ авторизации в личном кабинете.
Тайм-ауты. Медленный прокси или целевой сайт. Увеличьте тайм-аут в настройках действия и сравните несколько других адресов из пула, чтобы понять, виноват ли конкретный сервер.
В ProjectMaker работает, в ZennoPoster нет. При реальном запуске переменные заполняются иначе или потоки делят одну строку. Пишите в лог значение прокси в начале каждого потока.
Бесконечные повторы. Ограничьте повторы двумя-тремя попытками, затем пометьте прокси как плохой и возьмите другой, чтобы один мертвый сервер не останавливал весь запуск.
Бесплатные списки. Публичные прокси перегружены и быстро умирают; даже после фильтрации в ProxyChecker долгий запуск выдерживают единицы.
Частые вопросы о прокси в ZennoPoster
В каком формате ZennoPoster принимает прокси?
протокол://логин:пароль@ip:порт для прокси с авторизацией и протокол://ip:порт для открытых, где протокол — http или socks5. Без префикса используется HTTP.
Действует ли Set proxy на GET- и POST-запросы?
Нет, только на браузер. У действий-запросов свое поле прокси, туда нужно передать ту же переменную.
Как дать каждому потоку свой прокси?
Берите прокси из списка с удалением строки, используйте Get proxy с удалением из живого списка или закрепите прокси за аккаунтами в таблице.
Поддерживает ли ZennoPoster SOCKS5?
Да. Укажите префикс socks5:// в Set proxy или выберите тип в полях варианта Other.
Какие прокси лучше подходят для ZennoPoster?
Дата-центровые — для быстрого парсинга, ISP — для долгих сессий аккаунтов, резидентские — для сайтов со строгой антибот-защитой.


