[ZennoPoster] SibboraHelper 2.0 или проекты на C# так же просто, как на кубиках

Тема в разделе "Бизнес и свое дело", создана пользователем sibbora, 4 фев 2018.

Статус обсуждения:
Комментирование ограничено.
  1. 4 фев 2018
    #1
    sibbora
    sibbora ЧКЧлен клуба (А)
    upload_2018-2-5_0-52-37.png
    Долгое время библиотека SibboraHelper развивалась в составе другого моего продукта - ZennoPro Academy. В то время библиотека была (по моему мнению) скорее тестовым полигоном, чем полностью законченным решением. Тем не менее это не помешало тому чтобы на базе первой версии появилось множество проектов, в том числе и коммерческих.

    Вторая версия библиотеки призвана перевернуть всеобщее представление о процессе создания проектов ZennoPoster с использованием языка программирования C#. Основная идея, заложенная в SibboraHelper 2.0 - сместить фокус с программирования отдельных действий над переменными и объектами к программированию одной строкой отдельных операций на сайте.

    В процессе разработки библиотеки была поставлена задача предоставить разработчикам проектов следующие возможности:
    1) Адаптировать библиотеку для работы с конкретным сайтом;
    2) Выполнять один и тот же код как с полной эмуляцией мыши и клавиатуры, так и без неё;
    3) Реализовывать проверки состояния страницы одной строкой;
    4) Использовать результаты предыдущих операций в последующих операциях;
    5) Предоставлять разработчику выбор из нескольких вариантов для действий при неудаче;
    6) Анализировать причины ошибок не на основе кратких логов, а на основе полной информации.

    Давайте поговорим о каждом пункте подробнее.

    1. Библиотека может быть приспособлена для работы с конкретным сайтом.


    Казалось бы, что может быть проще чем найти на странице элемент с тегом input:checkbox, и кликнуть по нему? Или выбрать значение из выпадающего списка (теги select-opiton)? На древних сайтах - действительно всё относительно просто, хотя и там придётся сначала дождаться появления элемента на странице, после чего произвести над ним необходимое действие.

    Но возьмите любой современный сложный сайт: соцсеть, буксу, доску объявлений, развлекательную платформу. Практически везде выпадающие списки - это набор дивов, не имеющий ничего общего со стандартной конструкцией select-option. Чекбоксы (input:radio) - скрыты и не отображаются на странице, а за их визуальное представление отвечают всё те же сложные структуры из дивов и спанов. Не говоря о том что есть такие элементы, как слайдеры (ползунки) или поля для быстрого поиска, при вводе в которых первых букв появляются предлагаемые варианты, по одному из которых необходимо кликнуть.

    Да, работать с элементами на современных сайтах непросто. Но вот в чём соль: реализация однотипных элементов в рамках одного сайта - одинакова! А это значит, что научившись работать с одним слайдером, скажем, на авито, встретив затем слайдер на другой странице этого же сайта - вы с ним уже справитесь легко. Но вам по прежнему придётся копировать 10-20-50-100500 строк разработанного ранее кода в каждое место, где вы работаете с таким слайдером.

    Что в данной ситуации делает для вас библиотека SibboraHelper 2.0? Она берёт на себя базовую логику работы со следующими типами элементов:
    + Поле для ввода;
    + Кнопка;
    + Чекбокс;
    + Группа радиобаттонов;
    + Выпадающий список;
    + Поле для ввода с отображением результатов поиска;
    + Слайдер (ползунок).
    В базовую логику входит ожидание появления элемента на странице и установка его значения, а также сбор логов и фиксация вспомогательных параметров (об этом позже). Однако вы можете не только использовать уже заложенный в методах функционал, но и адаптировать его под конкретный сайт. Для этого вам нужно создать небольшой фрагмент кода, решающий три задачи:
    - Определение текущего значения элемента данного типа;
    - Определение видимости/невидимости этого элемента;
    - Определение заблокированности элемента/его доступности для взаимодействия.
    Создав этот фрагмент, вы подключаете его к библиотеке, и с этого момента библиотека умеет проверять необходимость действия до его совершения и успешность после его завершения исходя из структуры именно того сайта, с которым вы работаете.

    В чём заключается мощь такого подхода? Для примера, для подачи объявления и для его редактирования на авито мной используется один и тот же код. Код просто не взаимодействует с элементами, состояние которых ему не нужно менять, плюс исключается ситуация, когда код выполнился, а одно из действий на странице почему-то не отразилось.

    2. Выполнение одного и того же кода как с эмуляцией, так и без неё.


    Эмуляция мыши и клавиатуры повышает "человекоподобность" поведения вашего бота, но при этом сильно замедляет его выполнение. При этом создание кода, использующего обычный метод (Click), и реализующего полную эмуляцию (FullEmulationMouseMoveToHtmlElement, FullEmulationMouseClick), строится совершенно по разному.

    Библиотека SibboraHelper 2.0 позволяет написать код, в котором каждому действию на сайте будет соответствовать всего одна строка, а затем, изменяя всего одно настроечное свойство, выполнять данные действия как с полной эмуляцией мыши и клавиатуры, так и без таковых. Таким образом вы сможете включать полную эмуляцию в случае, если сервис начнёт массово блокировать аккаунты. И вам для этого не придётся переписывать код, нужно будет лишь изменить единственный параметр в настройках.

    3. Быстрые проверки состояния страницы

    Помимо действий над элементами страницы, не менее важным является правильное выстраивание ожидания необходимого состояния страницы. Что умеет делать библиотека в этом направлении? Она может ожидать:
    + Наличия/отсутствия на странице отдельного элемента;
    + Наличия/отсутствия на странице необходимого количества элементов;
    + Наличия/отсутствия на странице элементов, атрибуты которых соответствуют заданным параметрам;
    + Наличия на странице элементов, стилевое оформление которых отвечает заданным требованиям.
    Благодаря этому в вашем коде будет меньше циклов, запутывающих его структуру.

    4. Использование предыдущих результатов в последующих операциях

    Этот пункт вытекает из предыдущего. Допустим, мы дождались загрузки на странице количества фотографий, большего чем 10. Но сколько точно картинок загрузилось? 11? 150? Точное количество вы сможете получить как результат предыдущей операции, и кроме этого, все эти картинки уже будут заботливо собраны для вас в объект класса HtmlElementCollection для последующего перебора.

    5. Несколько вариантов действий при неудаче

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

    6. Подробная информация для анализа ошибок

    Что делает разработчик, отлаживая свой код? Зачастую пичкает его строками, выводящими информационные сообщения в лог. Но это слабо помогает, если ошибки возникают, например, каждое 10 выполнение проекта. Библиотека же собирает следующую информацию:
    + Базовая информация о результатах вызова каждого метода библиотеки с момента запуска проекта;
    + Скриншоты страницы до и после каждого действия с настраиваемой глубиной хранения;
    + Полные исходные коды страницы для каждого шага, также с настраиваемой глубиной хранения.
    Всё это позволяет производить подробных анализ даже эпизодических ошибок, возникающих как у вас так и у покупателей ваших ботов.

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

    Что входит в состав продукта:
    1) dll-библиотека, xml-файл со всплывающими подсказками;
    2) документация в формате pdf;
    3) видео с разбором всех методов;
    4) демо-проект.

    Кроме этого, покупатели получат следующие бонусы (из состава материала "ZennoPro Academy"):
    1) Подкурс по XPath;
    2) Материалы по основам языка программирования C#.
    Первый бонус поможет разобраться с поиском целевых элементов на странице а второй - создать базу для тех, кто по разным причинам раньше избегал создания проектов на языке C#.

    Порядок проведения складчины:

    Проверяющие найдены, продукт будет выдан на проверку 7 февраля (в среду). Также к среде дополню данный текст примерами со скриншотами. Дальше, если с проверкой уложимся быстро, сбор ориентировочно на 15-20 февраля.

    Важные моменты:
    1. По минимальному уровню участников. Слоган "проекты на C# так же просто, как на кубиках" говорит о том что благодаря библиотеке вы сможете одной строкой кода задать очень сложную логику (здесь прямая аналогия с визуальным экшеном постера, который благодаря множеству возможных настроек может быть очень удобным универсальным средством по работе со страницей). Несмотря на то что в составе материала есть в том числе и бонус в виде раздела по основам C# из Академии - он больше предназначен для того чтобы участники могли освежить свои знания по написанию проектов на C#, но не осваивать их с нуля. Если вы ранее не создали ни одного проекта на C# - данный продукт пока не для вас.
    2. По поддержке. В теме поддержки буду отвечать на вопросы по работе с библиотекой. Если не хватает базовых знаний - буду подсказывать где их получить, не более того;
    3. По обновлениям. Участники будут получать версии с исправленными ошибками (если таковые будут найдены). Версии с кардинально улучшенным функционалом будут доступны покупателям предыдущих версий со скидкой, однако о бессрочных обновлениях за такую цену речи не идёт (всё же основная задача библиотеки - быть хорошим инструментом в ваших руках и помощником в деле зарабатывания денег).

    Самое главное: для участников Академии первая коммерческая версия библиотеки будет на треть (на тысячу рублей) дешевле: 2500 рублей вместо 3500.

    Дальше - в виде вопросов и ответов:
    1) Чем первая версия второй ветки отличается от последней версии первой ветки, доступной в рамках академии?
    - Основное: с использованием второй версии код получается намного более лаконичным, плюс механизма адаптации под конкретные сайты, методов по работе с чекбоксами и радиобатонами в первой версии не было. Больше вы сможете прочесть 07.02, когда будет обновлена шапка.
    2) Почему продукт данной складчины не выдан в виде обновления в Академии?
    - Только начиная Академию, я сразу писал что библиотека со временем превратится в отдельный коммерческий продукт. Последние несколько месяцев я работал над одним крупным проектом, который позволил переосмыслить концепцию и кардинально улучшить библиотеку. Во вторую версию вложено огромное количество сил, достаточное, чтобы сделать её отдельным продуктом.
     
    12 пользователям это понравилось.
  2. 4 фев 2018
    #2
    BotMastak
    BotMastak ЧКЧлен клуба (А)
    У меня большинство проектов на этой либе. Либа - огонь! Всем советую!
     
  3. 4 фев 2018
    #3
    Basill
    Basill ОргОрганизатор (А)
    Если кто то отвалится из проверяющих - могу проверить.
     
    2 пользователям это понравилось.
  4. 4 фев 2018
    #4
    Владдд
    Владдд ЧКЧлен клуба
    @sibbora
     
  5. 5 фев 2018
    #5
    simak84
    simak84 ДолжникДолжник
    Всё хочу взяться за изучение зенопостера, но языками программирования как говориться не владею. Скажите, я так понял данный материал предназначен для людей уже довольно неплохо разбирающихся в данной сфере. Мне же новичку как поступить правильнее, сначала приобрести вашу академию а затем уже данный материал? Я так понял в академии идёт обучение с нуля?
    С уважением.
     
  6. 5 фев 2018
    #6
    sibbora
    sibbora ЧКЧлен клуба (А)
    Верно, данный материал уже для относительно опытных постероводов. В прежней версии академии - версии "всё в одном", конечно был материал и для новичков. Но в то же время с моей стороны это была попытка создать продукт "обо всём", в одиночку крайне трудная к реализации. Поэтому академию в прежнем формате я снял с продажи на складчике, и сейчас занимаюсь переформированием материала с разбиением на три ступени: базовую, продвинутую и экспертную. Каждая из ступеней будет намного более целостной и лишённой пробелов, которые были в исходной Академии. После проведения этой складчины, ближе к первым числам марта я запущу здесь обновлённую базовую ступень "Академии 2.0". Если с программированием у вас пока не очень - рекомендую поучаствовать.
     
    12 пользователям это понравилось.
  7. 6 фев 2018
    #7
    simak84
    simak84 ДолжникДолжник
    Спасибо. Значит буду ждать Академию 2.0.
    С уважением.
     
  8. 6 фев 2018
    #8
    Ferdenant
    Ferdenant ЧКЧлен клуба
    @sibbora, приветствую! Прошу рассмотреть мою кандидатуру в качестве проверяющего. Опыт разработки проектов (в т.ч. и конкурсных) на ZennoPosater есть.
     
  9. 7 фев 2018
    #9
    Спайдер
    Спайдер ЧКЧлен клуба
    И я правильно понимаю, что первая часть Академии уже всё... не будет поддерживаться? А то Вас там как-то не видно стало.
    И где складчина для Академии? Куда записываться?
     
  10. 7 фев 2018
    #10
    kapelan28
    kapelan28 ЧКЧлен клуба (А)
    судя по информации в стартпосте - сюда же записываться, просто оплата будет на 1000 р. меньше от текущей цены.
     
  11. 15 фев 2018
    #11
    MaxSAW
    MaxSAW ДолжникДолжник
    так вот что за SibboraHelper.dll в каждом шабе @BotMastak :)
    а когда академия стартует?
     
    1 человеку нравится это.
  12. 15 фев 2018
    #12
    BotMastak
    BotMastak ЧКЧлен клуба (А)
    Конечно присутствует! Она экономит время, делает обработку ошибок в разы проще и решает 99% работы с веб сайтами!
     
  13. 21 фев 2018
    #13
    extra
    extra СкладчикСкладчик
    @sibbora Приветствую, в чём будет заключаться разница между SibboraHelper 2.0 и ZennoPro Academy 2.0? Не могу решить - вписаться сейчас или ждать анонса академии 2.0
     
  14. 21 фев 2018
    #14
    Lotohov
    Lotohov ЧКЧлен клуба
    SibboraHelper 2.0 это библиотека, а ZennoPro Academy 2.0 это обучение C#
     
  15. 22 фев 2018
    #15
    extra
    extra СкладчикСкладчик
    Это понятно. Ситуация в том, что в Академии 2.0 будет эта же библиотека (поправьте, если не так). Оба продукта достойные, но я не хочу переплачивать
     
  16. 22 фев 2018
    #16
    extra
    extra СкладчикСкладчик
    @sibbora Будет ли скидка для тех кто покупал первую версию SibboraHelper?
     
  17. 8 мар 2018
    #17
    Inot
    Inot ЧКЧлен клуба
    здорово, ждем академию 2.0 свистните как будет создана складчина
     
  18. 9 мар 2018
    #18
    skiftut
    skiftut ЧКЧлен клуба
    Привет Гость! Уже видел? Идет набор на бесплатное предобучение по ZennoPoster - записаться.
     
  19. 14 мар 2018
    #19
    akSK2987
    akSK2987 ЧКЧлен клуба
    Когда стартуют продажи библиотеки?
     
  20. 15 мар 2018
    #20
    Линусик
    Линусик ОргОрганизатор
Статус обсуждения:
Комментирование ограничено.

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