December 1, 2024

InfiniteServer

Что такое InfiniteServer?

InfiniteServer.exe – это консольное приложение, созданное для автоматизации "антидетект браузеров" с помощью программы ZennoPoster(взаимодействие происходит по принципу клиент-сервер, где клиент это Zennoposer, который отправляет команду и ждет ответ, а InfiniteServer.exe - сервер, который ждет команду, выполняет ее и отправляет ответ обратно клиенту, то есть в ZennoPoster)

Что мне нужно чтобы начать работу?

1) Убедиться в том, что оно вам действительно надо...

Данное решение рассчитано для людей имеющих базовые представление об автоматизации и о том, что такое ZennoPoster и с чем его едят. InfiniteServer не является панацеей для всех ваших задач и проблем, и это не дает вам гарантию того, что вы сразу же побежите регистрировать гугл аккаунты тысячами или ваши аккаунты никогда не будут блокировать.

Всё взаимодействие с браузером происходит исключительно с помощью C# кода, хоть практически все нужные вам действия уже прописаны в тестовом шаблоне вам все равно придется чему-то УЧИТЬСЯ, как минимум вам нужно понимать отличие string от int, как работать с XPath либо CSS, понимать что такое API и уметь разбираться в документации.

И да, мы не заявляем, что наше решение является САМЫМ лучшим на рынке, аналогов которому нет и так далее по тексту... У нас тоже есть баги, есть к чему придраться, есть много моментов которые лично меня как разработчика не устраивают, любую критику, жалобы и предложения с удовольствием примем и постараемся что-то улучшить или исправить) Так же если вам не хватает какой либо функции, или вы считаете что она необходима, так же с радостью выслушаем ваши предложения.

Если вы готовы принять написанную информацию выше, то переходите к пункту номер 2

2) Оплатить или активировать бесплатную версию

Цена InfiniteServer 30$/месяц, так же вы можете использовать бесплатную(trial) версию на 7 дней (без ограничения функционала)
Для выписки лицензии обращаться: Midaw007 или XAPOHbI4

ОБЯЗАТЕЛЬНО СВЕРЯЙТЕ КОНТАКТЫ ПРИ ОПЛАТЕ

Для активации лицензии нужен ваш zenno id, что бы его получить есть 2 варианта:

1. Получить через ProjectMaker
Для этого в ProjectMaker нужно в окне переменных найти вкладку "Окружение", в этом окне взять значение переменной "Environment.CurrentUser" это и есть ваш zenno id

2 .Получить через личный кабинет ZennoLab

Личный кабинет => Клик по иконке профиля => Настройки профиля => Скопировать ID

3) Проверить версию .NET

InfiniteServer.exe работает на версии .NET8, перед началом работы вам нужно убедится в том, что на вашем устройстве установлены все подходящие компоненты. Проверить это достаточно просто, для этого нужно отрыть командную строку (cmd) и выполнить команду указанную ниже:

dotnet --version
Ввод команды для проверки версии .NET

Далее нажимаем "Enter" и получаем ответ:

Положительный результат

Если вы получится ответ с установленной версий 8.0 и выше, то можете сразу переходить к шагу номер 4

Если ваш ответ что-то похожее на "dotnet не является внутренней или внешней командой..." или ваша версия .NET ниже 8, то перейдите на официальный сайт Microsoft для загрузки установщика нужной версии

Далее выполните установку, закройте консоль(cmd) и выполните шаг номер 3 снова

4) Скачайте архив с проектом и разархивируйте

Архив можно скачать в нашем телеграмм канале СКАЧАТЬ

В архиве вы найдете несколько директорий и файлов:

  1. Директория InfiniteServer – в ней хранится нужный нам для запуска InfiniteServer.exe и все нужные для него компоненты
  2. Директория Infinite_Test – в ней находиться тестовый шаблон с примерами кода и пояснениями, так же в директории находится файл "MetaMask.png", который используется для примера загрузки файла на сайт
  3. InfiniteClient.dll – C# библиотека для взаимодействия с InfiniteServer.exe с помощью ZennoPoster
  4. InfiniteClient.xml – XML документация для InfiniteClient.dll, нужна для всплывающих подсказок при написании кода
  5. 1.9.7.19.txt – дублирующийся текстовый файл для просмотра версии
InfiniteClient.xml

5) Добавить необходимые компоненты в рабочую папку ZennoPoster

1. Откройте папку в которую вы установили ZennoPoster

2. Перейдите в директорию ExternalAssemblies

3. Перейдите в директорию ExternalAssemblies

После перехода в директорию ExternalAssemblies, переместите в нее 2 файла (InfiniteClient.dll и InfiniteClient.xml)

6) Почти все готово!!!

Если вы все сделали правильно, то теперь вам нужно открыть тестовый шаблон Infinite_Test.zp, который находится в директории Infinite_Test и выполнить первый кубик(экшен)

Если у вас не посыпались ошибки, то настройка выполнена правильно и вы можете начинать писать свои проекты

Далее для написания будущих шаблонов дабы не морочиться с добавлением ссылок из GAC и не прописывать using и общий код, рекомендую просто копировать проект Infinite_Test, переименовать его, удалить лишние кубики и продолжить работу

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

1) Для начала нам нужно создать экземпляр класса Client и сохранить его "в память" зенопостера. Это делается для того, что бы мы могли обращаться к этому объекту в других кубиках.

Далее в каждом последующем кубике для работы с нашим объектом его нужно "доставать из памяти" с помощью строки:

InfiniteClient.Client client = project.Context["client"] as InfiniteClient.Client;

2) Открываем соединение. В этот момент происходит запуск InfiniteServer.exe (по умолчанию в фоновом режиме) и создания соединения с ZennoPoster. Обязательно указать путь к InfiniteServer.exe в переменную (в моем случае имя переменной "pathToExe"), пример пути выглядит так:
C:\Users\user\Desktop\InfiniteSever\InfiniteServer.exe

3) Запуск браузера. После успешного запуска InfiniteServer.exe мы можем приступить к запуску браузера, в нашем решении есть 4 встроенных браузера для запуска (AdsPower, Dolphin, OctoBrowser, IxBrowser), все эти браузеры запускаются через метод LaunchBrowser(BrowserType.НАЗВАНИЕ_АНТИКА, ID_ПРОФИЛЯ). Этот метод принимает 2 либо 3 параметра, 1й- тип браузера, 2-й ID профиля (ВАЖНО, именно ID профиля, не его имя или порядковый номер, узнать как найти ID нужного антика можно ТУТ) и 3-й, но не обязательный параметр это аргументы браузер (кубик 3.1), он принимает в себя массив строк пример:

БЕЗ АРГУМЕНТОВ:

var idProfile = project.Variables["idProfile"].Value; client.LaunchBrowser(BrowserType.IxBrowser, idProfile);

С АРГУМЕНТАМИ:

var idProfile = project.Variables["idProfile"].Value; var args = new string[] {"--window-size=1980,796", "--blink-settings=imagesEnabled=false"}; client.LaunchBrowser(BrowserType.IxBrowser, idProfile, args);

Так же можно подключится к любому другому НЕ ВСТРОЕМУ антику с помощью CDP соединения (http/wss) для этого используем метод ConnectToBrowser():

client.ConnectToBrowser("ws://localhost:9222/devtools/page/DAB7FB6187B554E10B0BD18821265734");

Точку подключения можно получить из ответа при запуске браузера по API

3) Активируем вкладку для работы. На данный момент я не смог придумать механизм автоматической активации нужной вкладки, и в принципе считаю это лишним, так как такие попытки были приняты в плагине "AntyZenno" что привело к дополнительным не удобствам. Поэтому после запуска браузера я обычно получаю количество вкладок и закрываю все, кроме 1, даты скрипты не путались во вкладках, далее активирую первую вкладку и продолжаю работу (кубик номер 4)

4) Пишем свой проект дальше. На этом этапе, стандартная настройка и запуск браузера выполнены, далее вы просто можете взять уже написанные мною кубики и заменить в них данные на свои или же написать свой код

БЛОК 1: Дополнительные настройки.

БЛОК 2: Готовые кубики с кликами, вводом текста, парсингом, работай с вкладками, загрузкой и скачиванием файлов и так далее.

В будущем к-во действий планируется расширить

5) Закрываем браузер и соединение. Дабы экономить ресурсы вашего устройства после отработки скрипта или же при выходе по GoodEnd или BadEnd рекомендую выполнять закрытие браузера и закрытие соединения, что бы на фоне не висела лишняя нагрузка

ВАЖНО!!! Данное решение не работает с внутренним браузером ZennoPoster (но при необходимости можно работать одновременно и со встроенным браузером и с антидетект браузером), действия выполняемые кубиками (экшенами) такие как: клик, ввод текста, работа с вкладками, переход по ссылкам, парсинг и т.д. не будут работать в антидетект браузере (см. рис. 1)

рис. 1

Но это не запрещает вам использовать такие кубики как: обработка текста, работа со списками и таблицами, логика, http запросы, работа с директориями, работа с базами данных и так далее