Открыто

Библиотека для удобного написания регеров/спамеров [ZennoPoster]

Тема в разделе "Бизнес и свое дело", создана пользователем lexxik, 23 июн 2020.

Цена: 500р.
Взнос: 500р.

Основной список: 6 участников

Статус обсуждения:
Комментирование ограничено.
  1. 23 июн 2020
    #1
    lexxik
    lexxik ЧКЧлен клуба

    Библиотека для удобного написания регеров/спамеров [ZennoPoster]

    Всем привет. Хочу предложить свою библиотеку, которая облегчит вам процесс написания шаблонов на c# в zennoposter. Библиотека выдается в открытом виде (закомментирую код для простоты понимания).

    1.jpg

    Что внутри:

    Screenshot() – делает скриншот и кладет в папку конкретного потока.

    ZapisLog(string message) – запись в лог и выход по ошибке. Параметры: какое сообщение записать. Работает в двух режимах:

    · В расширенном режиме лога запись идет в папку конкретного потока (в txt файл). Также делается скриншот и сохраняется исходный код стр, которые также кладутся в эту папку

    · В обычном режиме делается запись в лог в окно «ошибки»

    ZapisVTxtFile(string zapis) – запись в txt файл в папку конкретного потока. Параметры: какое сообщение записать. Может пригодиться, когда надо отслеживать как ведет себя каждый поток по отдельности.

    Perehod(string url, bool pausa = true, int pausa_ot = 5000, int pausa_do = 8000) – переход на страницу. Параметры: урл куда переходим, нужна ли пауза после перехода по урл (необязательно - по умолчанию true), пауза от в миллисекундах(необязательно - по умолчанию 5000), пауза до в миллисекундах(необязательно - по умолчанию 8000).

    Perehod(string url, string reloadBrowser, bool pausa = true, int pausa_ot = 5000, int pausa_do = 8000) – переход на страницу (2 перегрузка). Используется при первом заходе. Отличается тем, что проверяет прокси на работоспособность. Параметры: урл куда переходим, нужно ли перезагружать браузер в случае неудачного захода (если да, то прописываем «yes»), нужна ли пауза после перехода по урл (необязательно - по умолчанию true), пауза от в миллисекундах(необязательно - по умолчанию 5000), пауза до в миллисекундах(необязательно - по умолчанию 8000).

    PoiskElement(string xpath, string message = "ошибка при поиске элемента/клике/установке значения - ", int skolko=30) – поиск элемента с выходом по ошибке, если он не будет найден. Параметры: xpath путь искомого элемента, какое сообщение выводить при ошибке(необязательно - по умолчанию xpath путь не найденного элемента), сколько ждать появления элемента (если его нет) в СЕКУНДАХ(необязательно - по умолчанию 30 сек). Возвращает HtmlElement.

    PoiskElement(string xpath, int number, int skolko=5, bool perezahod = false) – поиск элемента без выхода по ошибке (2 перегрузка). Параметры: xpath путь, номер элемента, сколько ждать в секундах(необязательно – по умолчанию 5 секунд), нужно ли пытаться перезайти на страницу, если элемент не находится (необязательно – по умолчанию нет). Возвращает bool (true если найден, false если нет).

    ClickElement(string xpath, int number=0, int skolkoJdat = 30, bool pausa = true, int pausa_ot = 2000, int pausa_do = 5000, bool scroll = false, bool sostoyanieZagruzki = false, bool poiskplashki = false) – клик по элементу с использованием мышки. Параметры: xpath путь для 1-го элемента по которому кликаем, номер элемента(необязательно - по умолчанию 0), сколько секунд ждать появления элемента(необязательно - по умолчанию 30 секунд), нужна ли пауза после клика(необязательно - по умолчанию true), пауза от(необязательно - по умолчанию 3000 миллисекунд), пауза до(необязательно - по умолчанию 7000 миллисекунд), надо ли скроллить до элемента(необязательно - по умолчанию false), отслеживать или нет начала ли страница перезагружаться(необязательно - по умолчанию false).

    SetValueElement(string xpath, string value, int number=0, int skolkoJdat = 30, bool pausa = true, int pausa_ot = 3000, int pausa_do = 7000, bool scroll = false) – установка значения с использованием мышки. Параметры: xpath путь до элемента, устанавливаемое значение, номер элемента(необязательно - по умолчанию 0), сколько секунд ждать появления элемента(необязательно - по умолчанию 30 секунд), нужна ли пауза после клика(необязательно - по умолчанию true), пауза от(необязательно - по умолчанию 3000 миллисекунд), пауза до(необязательно - по умолчанию 7000 миллисекунд), надо ли скроллить до элемента(необязательно - по умолчанию false), отслеживать или нет начала ли страница перезагружаться(необязательно - по умолчанию false).

    SetValueSelectElement(string xpath, string value, bool itselect = false, string emulation = "Full", bool click = true, int number=0, int skolkoJdat = 30, bool pausa = true, int pausa_ot = 3000, int pausa_do = 7000, bool scroll = false) – установка значения для select. Параметры: xpath путь до элемента, устанавливаемое значение, сказать ли команде SetValue, что это Select(необязательно - по умолчанию false), уровень эмуляции: None, Middle, Full, SuperEmulation(необязательно: по умолчанию Full), кликнуть ли по элементу перед установкой значения(необязательно - по умолчанию true), номер элемента(необязательно - по умолчанию 0), сколько секунд ждать появления элемента(необязательно - по умолчанию 30 секунд), нужна ли пауза после клика(необязательно - по умолчанию true), пауза от(необязательно - по умолчанию 2000 миллисекунд), пауза до(необязательно - по умолчанию 7000 миллисекунд), надо ли скроллить до элемента(необязательно - по умолчанию false).

    UdalenieDubleiIzSpiska(List<string> spisok) – удаление дублей из списка List. Параметры: список List

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

    2.png


    Для закрепления напишем какой-нибудь простой шаблон (это будет регер рамблер почт или майл почт).

    1 месяц поддержки, если будут вопросы.

    Бонусы:
    • Методичка по поиску элементов с помощью xpath
    • Упаковка библиотеки в dll с помощью visual studio и её подключение (чтобы не занимала место в общем коде)
    Для получения бонусов поставить в подпись и 1 рекламный пост. Если есть вопросы, задавайте.
     
  2. Последние события

    1. stvlad
      stvlad не участвует.
      14 апр 2024
    2. Roman1984
      Roman1984 не участвует.
      10 апр 2024
    3. Roman1984
      Roman1984 участвует.
      10 апр 2024
    4. bobby
      bobby не участвует.
      23 фев 2024
  3. Обсуждение
  4. 23 июн 2020
    #2
    Мандарин7
    Мандарин7 ЧКЧлен клуба
    И все же мне не понятно , если человек должен писать код в чем отличие написание кода с использованием библиотеки и стандартными методами. Если дело в ускорении записи кода, то логичнее обратиться к программам которые просто делают копипаст кусков кода.
     
  5. 23 июн 2020
    #3
    vasquezj
    vasquezj ЧКЧлен клуба
    Не обижайтесь, но от skolkoJdat, perehod и тому подобного кровь идет из глаз. Мне кажется, на продажу стоит переписать с нормальными наименованиями.
     
    1 человеку нравится это.
  6. 24 июн 2020
    #4
    lexxik
    lexxik ЧКЧлен клуба
    Пример клика мышкой без дополнительной логики:
    Код:
    HtmlElement he = instance.ActiveTab.FindElementByXPath("//a[text()='Видео']",0);
    if(!he.IsVoid)
    {
        instance.ActiveTab.FullEmulationMouseMoveToHtmlElement(he);
        instance.ActiveTab.FullEmulationMouseClick("left","click");
    }
    С библиотекой:
    Код:
    deistvie.ClickElement("//a[text()='Видео'");
    Плюс есть ожидание элемента, возможность реализовать паузы и прочее. Библиотека открыта, можно добавить свою логику/убрать лишнюю, не вдаваясь в подробности работы с общим кодом. Не все работают с общим кодом.

    Библиотека открыта, можно переименовать как душе угодно. 1.png
     
  7. 24 фев 2021
    #5
    z_EVS
    z_EVS ЧКЧлен клуба
    Новый курс по Zenno+C# от nztcoder: Hyper Coding: пишем код в ZennoPoster + VS, а не двигаем кубики
     
Статус обсуждения:
Комментирование ограничено.

Поделиться этой страницей