Функции блоков конструктора

Материал из BotZilla
Перейти к: навигация, поиск

Оглавление


Переход к URL

Блок, в котором можно указать URL адрес страницы, на которую надо перейти, например avito.ru или http://avito.ru. В этом блоке также можно установить referer, если поле referer оставить пустым, то оно просто игнорируется. Также есть 2 режима работы:

  • режим, когда программа дожидается полной загрузки документа
  • режим когда программа не дожидается полной загрузки документа

1-й режим дожидается полной загрузки документа. Минус 1-го режима в том, что бывает, что страница визуально загрузилась, на ней есть все необходимые для работы элементы, но формально идёт загрузка страницы и выполнение последующих блоков проекта блокируется. Плюс в том, что не нужно создавать дополнительные блоки, которые будут проверять наличие нужных элементов, хотя и это не факт.
2-ой режим не дожидается загрузки страницы, поэтому необходимо предусмотреть блоки(блок СЧЁТЧИК), внутри которого установить необходимую задержку и проверять наличие необходимых для работы элементов. По опыту, применение 2-го режима может дать многократный прирост в скорости выполнения проекта.

Клик

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


Фокус

Блок, в котором можно указать Xpath элемента, на который нужно навести фокус.


Скролл

Блок, в котором можно указать как вы хотите прокрутить страницу: 1 - одна страница вниз, 2 - две страницы вниз. Если скролл принимает отрицательное значение, то прокрутка идёт вверх.


Задержка

Блок, в котором можно указать задержку в секундах или милисекундах между действиями.

Капча

Блок, в котором можно указать xpath капчи и переменную, в которую нужно будет записать ответ. Этот блок событий будет искать картинку и либо отправлять её в antigate, если у вас стоят соответствующие настройки, либо будет открывать капчу в специальной форме для разгадки вручную.

Форма

Блок, в котором можно указать xpath формы, её тип и значение, которое необходимо установить. Поддерживает установку значений в радиокнопки, чекбоксы, селекты и файловые формы.


Ввести текст

Блок, в котором можно указать xpath текстовой формы и текст, который необходимо в неё ввести.


Счётчик

Счётчик - это цикл со счётчиком (программистам известен как for). Если вам необходимо зациклить какие-либо действия по счётчику, то вам нужно создать этот элемент, следующие после создания этого элемента действия будут дочерними по отношению к этому элементу и выполняться внутри цикла, внутри цикла также будет доступна переменная счётчика по имени, которое автоматически создаётся, это атрибут countName элемента For, если вы будете смотреть через XML редактор, также имя переменной можно увидеть, если кликнуть по блоку счётчика, справа в описании блока оно будет указано. Счётчик имеет 3 параметра:

  • начальное значение - это значение счётчика при прохождении первого цикла
  • конечное значение - это значение, достигнув которого цикл прекратится
  • шаг - это число, на которое увеличивается счётчик в конце цикла

Чтобы запись действий вышла из цикла, нажмите кнопку B skobka.jpg или просто выделите элемент после которого вы хотите записать события.

Перебор

Перебор списка - это цикл для перебора всех элементов массива или коллекции ( программистам известен как foreach ). Файл, который вы укажете, будет представлен в виде массива(коллекции) строк, в каждом новом повторении (итерации) в переменную, указанную вами, будет записана следующая строка. В остальное всё аналогично блоку СЧЁТЧИК.

Если

В этом блоке проверяется условие, если оно верно, то дочерние блоки будут выполнены, иначе - проигнорированы.

  • != - не равно
  • == - равно
  • >= - больше или равно
  • <= - меньше или равно
  • > - больше
  • < - меньше

Синтаксис:
{*количество*}==10 - переменная "количество" равна 10
{*счётчик*}>20 - переменная счётчик больше 20
и т.д.
Также вместо логического выражения можно указать одну из четырёх проверок:

  • СтраницаСодержит('')
  • СтраницаНесодержит('')
  • ЭлементСуществует('')
  • ЭлементНесуществует('')

В первой и второй функциях проверки нужно указывать текст между одинарными кавычками. Пример: СтраницаСодержит('положить в корзину') - будет произведена проверка, есть ли на странице текст "положить в корзину", если есть, то дочерние блоки блока ЕСЛИ выполнятся, если такого текста на странице нет, то не выполнятся.
Обратите внимание, что если такой текст будет, но где-то посередине будут стоять теги, то искать текст надо вместе с тегами. С проверкой СтраницаНесодержит('') всё аналогично, только проверяется отсутствие текста, а не его наличие.
В третьей и четвёртой функциях проверки проверяется наличие или отсутствие на странице HTML элемента, в качестве аргумента в кавычках указывайте xpath элемента.

Переход к ID

Этот блок осуществляет переход к другому блоку, ID которого вы укажите. Чтобы корректно всё работало с использованием блока ПЕРЕХОД к ID его можно, использовать только на том же уровне вложенности, т.е. если смотреть в XML, а дерево проекта это и есть графическое отражение XML, то блок ПЕРЕХОД к ID должен иметь тот же родительский элемент, что и блок, к которому он ведёт. В блоке можно задавать условие перехода, если условие не задано, то переход происходит в любом случае. Если условие задано и оно верно, то переход происходит, если не верно, то переход не происходит. Синтаксис условий точно такой же как в блоке ЕСЛИ.

Прервать цикл

Этот блок прерывает работу внутри циклов СЧЁТЧИК или ПЕРЕБОР СПИСКА и переводит проект к выполнению следующего блока вне цикла. Для программистов - это break.

Продолжить

Этот блок прерывает работу внутри циклов СЧЁТЧИК или ПЕРЕБОР СПИСКА и переводит проект к выполнению следующего повторения (итерации) цикла. Для программистов - это continue.

Удалить куки

Этот блок удаляет куки браузера.

Сохранить куки

Cookies.jpgCookiesfile.jpg
Этот блок сохраняет куки в указанный файл в XML формате.
Пример файла с куки на скриншоте.
Собственно сама информация о куки содержится в XML-элементе cookiesItem, именно из этого элемента восстанавливается информация.
Корневой элемент - cookieslist - это контейнер, который содержит в себе дочерние элементы cookiesItem, ограничений по количеству нет.
В дальнейшем куки из этого файла могут быть восстановлены в браузере с помощью 2-х способов:

  • с помощью блока УСТАНОВИТЬ КУКИ
  • с помощью блока ПЕРЕБОР

Установить куки

Setcoockie.jpg
Этот блок устанавливает куки из файла в соответствующем формате. На скриншоте окно, вкотором можно указать файл, откуда установить куки 2-мя способами:

  • выбрать переменную, содержащую путь к файлу куки(отображаются только переменные с типом куки)
  • прописать руками путь до файла

Также обязательно указать номер куки, нумерация куки в файле начинается с нуля. В качестве номера можно использовать числовую переменную. Если куки в файле у вас одна, то укажите индекс 0.

Выражение

В этом блоке переменной в левой части присваивается значение выражения из правой части.
Синтаксис:
{*счётчик*}={*количество*}+10 - присвоить переменной "счётчик" сумму сложения переменной "количество" и 10
Также предусмотрено обращение к свойству файла, которое вернёт количество строк, пример:
{*количествоАккаунтов*}={*файлАккаунтов*}.Количество - присвоить переменной "количествоАккаунтов" количество непустых строк файла "файлАккаунтов".


Обработка строк

В этом блоке можно одной строковой переменной присвоить значение одной части другой строковой переменной, разбитой на части по определённому разделительному символу.
Синтаксис:
{*фио*}=Иванов:Иван:Петрович
{*фамилия*}={*фио*}.Разбить(:).0 - разбить переменную "фио" по символу ":" и присвоить переменной "фамилия" фрагмент с индексом 0
{*имя*}={*фио*}.Разбить(:).1 - разбить переменную "фио" по символу ":" и присвоить переменной "имя" фрагмент с индексом 1
{*отчество*}={*фио*}.Разбить(:).2 - разбить переменную "фио" по символу ":" и присвоить переменной "отчество" фрагмент с индексом 2
В итоге в переменных получим значения:
фамилия=Иванов
имя=Иван
отчество=Петрович

Также можно объединять 2 строки в одну:
{*строкаГруппДляЗапроса*}={*строкаГруппДляЗапроса*}+{*gid*}
{*строка*}="Привет "+"мир!!!"

JS

Этот блок позволяет исполнить javascript на странице. Результаты выполнения кода можно возвращать в переменную проекта, например:

function getResult()
{
       return 'Привет';
}
getResult();

такой код вернёт строку "Привет" в переменную проекта, если её указать.

Получить текст

Этот блок получает текст из элемента, xpath которого вы укажите и записывает в переменную, которую вы укажете. Если у элемента есть дочерние элементы, то в переменной будет всё содержимое элемента вместе с тегами, если дочерних элементов нет, то будет только текст.

USER AGENT

Этот блок переписывает строку user agent браузера. Доступные значения user agent хранятся в файле "юа" в корне программы, вы можете туда дописать свои user agent. Вы можете выбрать user agent из выпадающего списка, можете ввести туда необходимое вам значение в текстовое поле, также в текстовое поле можно подставить строчную переменную, тогда значение user-agent будет браться из переменной, это может пригодится вам для динамической подмены user-agent или для предоставления возможности ввода значения user-agent через интерфейс.

Прокси

Proxy.jpg
Этот блок устанавливает интернет соединение через прокси, данные прокси серверов нужно предварительно заполнить на вкладке "настройки", а в этом блоке указать номер (нумерация начинается с 0, если индекс выходит за пределы, то ставится последний прокси в списке) прокси в списке указанных прокси серверов. В качестве номера прокси можно использовать числовую переменную.

Интерфейс

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


Конец

Этот блок поможет закончить исполнение проекта в любой части проекта.

Сообщение

Этот блок позволяет выводить сообщения для пользователя, при этом выполнение проекта блокируется до момента, пока пользователь не нажмёт кнопку "ОК" в окне сообщения. Можно выводить как готовые сообщения, так и значение какой-либо переменной.

Случайное число

Случайноечисло.jpg
Блок СЛУЧАЙНОЕ ЧИСЛО присваивает числовой переменной, которую вы укажите случайное число в диапазоне, который вы укажите. Чтобы указать переменную, в которую необходимо записать значение, выберите её из выпадающего списка. Чтобы указать минимальное значение генерируемого числа, укажите число в текстовое поле "минимум", чтобы указать максимальное значение укажите его в поле "максимум". Вместо значений минимум и максимум можете указать числовые переменные.

Создать файл

Создатьфайл.jpg
Этот блок позволяет программе BotZilla создавать файлы. На скриншоте окно создания блока СОЗДАТЬ ФАЙЛ, необходимо руками прописать путь.

Получить элементы

Получитьэлементы.jpg
С помощью этого блока можно получить массив html-элементов веб-страницы, соответствующих определённому пути xpath. Чтобы получить элементы укажите в окне создания блока переменную с типом "элементы" и xpath-путь, которому они должны соответствовать.

Получить элемент

Идентичный интерфейс с окном "Получить элементы". Получает первый попавшийся по xpath элемент в переменную типа "элемент".

Добавить вкладку

Этот блок позволяет открыть новую вкладку браузера, необходимо указать url страницы. Вкладка становится активной и выполнение проекта происходит в ней.

Закрыть вкладку

Этот блок закрывает активную вкладку браузера.

Переключить вкладку

Этот блок осуществляет переключение между вкладками по номеру вкладки. Нумерация вкладок начинается с 1 и считается слева направо независимо от того, что указано в заголовке вкладки.

Настройка

Этот блок позволяет настраивать браузер. Доступны несколько сотен настроек. Полный список настроек можно посмотреть, если в адресную строку программы ввести строку "about:config". Описание некоторых настроек можете найти здесь: developer.mozilla.org


Regex

Блок Regex предназначен для парсинга подстроки по регуляному выражению или удалению подстроки по регулярному выражению. Для работы необходимо выбрать действие: спарсить или удалить. Выбрать входную строку, которая будет сверяться с регулярным выражением и выходную строку, в которую будет записан результат в зависимости от выбранного вами действия.

Генератор паролей

Генерирует строку указанной длины из цифр и симолов латинского алфавита.


C#

Блок исполняет C# скрипт, в контексте доступны все переменные проекта.
Методы доступа к переменным проекта по имени переменной:

public string GetCounter(string varname) - получение текущего значения блока счётчика
public string GetVar(string varname) - получение значения числовой или строчной переменной
public ObservableCollection<GeckoNode> GetNodeColl(string varname) - получение ссылки на коллекцию объектов типа "элементы"
public GeckoNode GetNode(string varname) - получение ссылки на объект типа "элемент"
public XElement GetXMLEl(string varname) - получение ссылки на объект типа "xelement"
public IEnumerable<XElement> GetIEEls(string varname) - получение ссылки на коллекцию объектов типа "xelements"
public XDocument GetDoc(string varname) - получение ссылки на объект типа "xdocument"

Методы установки переменных проекта по имени и значению:

public void SetCounter(string varname, string val)
public void SetVar(string varname, string val)
public void SetVarNodeCollections(string varname, ObservableCollection<GeckoNode> nodes)
public void SetVarElement(string varname, GeckoNode node)
public void SetVarXMLElement(string varname, XElement el)
public void SetVarXMLElements(string varname, IEnumerable<XElement> els)
public void SetVarXMLDoc(string varname, XDocument doc)

Оглавление