Попробовать
Назад к блогу

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

Как настроить прокси в 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). Соедините блоки так, чтобы действие выполнялось раньше любого Перейти на страницу: страница, открытая до него, пойдет через старое подключение.

ProjectMaker ZennoPoster 7.9.2: на рабочем поле блок «Неопределенное действие», в свойствах выбрано «Установить прокси» и строка 123.123.123.123:10000
Действие «Установить прокси» в ProjectMaker

Шаг 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-} вместо фиксированного значения.

Свойства действия «Установить прокси» в ZennoPoster: строка прокси вида логин:пароль@IP:50100 со скрытыми данными и флажки эмуляции геопозиции, часового пояса, WebRTC и DNS over HTTPS
Строка прокси с логином и паролем

Шаг 4. Проверьте

Добавьте после Set proxy действие перехода на любой сайт проверки IP и выполните проект пошагово. На странице должен отобразиться адрес прокси.

Подвох: у HTTP-запросов свой прокси

Set proxy меняет только встроенный браузер. Действия, работающие без браузера, — GET-запрос и POST-запрос — имеют собственное поле прокси. Если шаблон сочетает браузерные шаги и прямые запросы, передайте ту же переменную и туда, иначе часть трафика уйдет с вашего настоящего IP.

Массовые списки через ZennoProxyChecker

ZennoProxyChecker входит в комплект ZennoPoster и рассчитан на большие списки:

  1. Подготовьте файл. По одному прокси в строке: ip:port для открытых или login:password@ip:port для прокси с авторизацией. Уберите пустые строки и лишние пробелы.
  2. Добавьте источник. На вкладке Sources добавьте файл (или веб-страницу со списком). В настройках источника задается, как разбирать и проверять прокси.
  3. Создайте правила проверки. В расширенных настройках источника добавьте правило, которое открывает целевой URL через каждый прокси и ищет на странице ожидаемый текст. На вкладке Rules соберите фильтры — например, уровень анонимности плюс пройденная проверка URL.
  4. Запустите проверку на вкладке Control.
  5. Передавайте прокси в шаблоны действием Get proxy. Выберите правило и отметьте удаление прокси из живого списка (Delete proxy from the live list), если каждый адрес должен достаться только одному потоку.

Отдельные серверы удобно проверить и вне программы — в бесплатном онлайн-чекере прокси.

Как закрепить прокси за аккаунтом

Для долгих сессий храните прокси рядом с данными аккаунта: одна строка таблицы или списка на аккаунт — логин, пароль, строка прокси. В начале шаблона:

  1. Возьмите строку аккаунта операцией с таблицей или списком.
  2. Разберите ее на переменные, например {-Variable.acc_login-} и {-Variable.proxy-}.
  3. Передайте {-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 — для долгих сессий аккаунтов, резидентские — для сайтов со строгой антибот-защитой.