-{Title}- Режим презентации -{/Title}- -{Content}- Рекомендуем использовать Динамическую презентацию 2.0 - максимально простой и быстрый способ создать презентацию любой сложности и гибкости
СодержаниеРежим презентации предлагает огромный выбор настроек для имитации реального посещения сайта и хождения посетителя по страницам. Все настройки задаются в общих настройках сайта. Давайте рассмотрим все настройки по порядку:
Примечание: Если вам нужно передать в качестве реферера специальный адрес, который не укладывается в рамки настройки передачи реферера, добавьте в любом месте параметра команды функцию <referer(адрес)>, где в качестве адреса укажите адрес передаваемого реферера, например http://jetswap.com.
Если вам нужно передать реферер, выбранный из поля "Реферер по заказу" для данного показа сайта, укажите в качестве реферера ключевое слово SELECTED
Внимание! Для настройки перечисленных ниже параметров требуется хорошее знание HTML и JavaScript и умение анализировать HTML-код страницы. Если у вас недостаточно для этого знаний, вам не следует использовать эти параметры. Служба поддержки не производит консультаций по настройке этих параметров, за консультациями рекомендуем обращаться на форум.
Параметры команды заполняются в формате A;;;B (между параметром A и B три точки с запятой). Параметр A - адрес, по которому производится переход (заполняется аналогично команде "Переход"), B - параметры POST-запроса в формате URL, т.е. param1=value1¶m2=value2. При содержании чего-либо, кроме английских букв и цифр, к значениям параметров должно быть применено URL-кодирование. Для этого воспользуйтесь специальной формой.
Например, при вводе http://site.ru/login.php;;;user=Admin&pass=123 будет совершена имитация отправки такой формы: <form method=post action=http://www.site.ru/login.php><input name=user value=Admin><input name=pass value=123 type=password><input type=submit></form>
Примечание: Если вам нужно передать в качестве реферера специальный адрес, который не укладывается в рамки настройки передачи реферера, добавьте в любом месте параметра команды функцию <referer(адрес)>, где в качестве адреса укажите адрес передаваемого реферера, например http://jetswap.com
Если вам нужно передать реферер, выбранный из поля "Реферер по заказу" для данного показа сайта, укажите в качестве реферера ключевое слово SELECTED
Значение, введенное в SearchMethod, обозначает способ поиска нужного объекта и может выступать одно из следующих значений:
Number - вы можете ввести необязательный параметр Number, чтобы клик был выполнен не по первому найденному элементу, а случайному (при вводе -1 (минус один)) или заданному (при вводе 1 клик будет выполнен по второму найденному элементу, 2 - третьему и т.п.) Например, при вводе a;link;jetswap;-1 клик будет выполнен по случайной ссылке из списка ссылок, которые содержат слово jetswap. Чтобы оставить значение Number по умолчанию, введите 0.
ClickRectangle задает прямоугольник в объекте клика, в пределах которого будет произведен клик. Требует специальной настройки, если имеет значение, в какой точке в пределах объекта будет произведен клик (например, чтобы начать воспроизведение флеш-ролика, нужно нажать на кнопку Play в пределах этого ролика), в противном случае задавать не обязательно. 0 или не задан - 80% площади объекта (т.е. клик производится случайным образом в пределах площади объекта, обрезанной по краям на 20%). Вводится в формате X:Y:Width:Height, где X и Y обозначают координату начальной точки прямоугольника, Width и Height - ширина и высота прямоугольника. Значения вводятся в пикселях.
Пример: объект имеет размеры 200x200 пикселей, нам нужно кликнуть посередине в квадрате 20х20 пикселей. Тогда прямоугольник будет задан координатами 90:90:20:20 (90=200(размер объекта)/2-20(размер прямоугольника для клика)/2)
Чтобы оставить значение ClickRectangle по умолчанию, введите 0.
ClickTime - параметры времени клика, необязательный параметр, следует вводить только при отличиях от принятых значений по умолчанию. Вводится в формате MoveTime:Click Каждое из значений вводится в миллисекундах. MoveTime - время перемещения мыши из случайной точки на заданный объект (3000 мс по умолчанию), Click - время от завершения перемещения мыши до нажатия левой кнопки, по умолчанию от 150 до 700 мс случайно. Чтобы оставить значение ClickTime по умолчанию, введите 0.
RewriteTarget - значение, на которое заменяется target у ссылки, по умолчанию - _top (чтобы предотвратить попытку открытия ссылки в новом окне, которая будет неудачной.). Введите ORIGIN, чтобы отключить автозамену.
Вставьте конструкцию вида <set(настройка1=значение1;настройка2=значение2...)> в параметры любой команды презентации, чтобы задать параметры отображения сайта, которые будут применены перед выполнением этой команды презентации.
Также эту команду можно вызывать из JavaScript с помощью динамической настройки презентации.
В данный момент поддерживаются следующие настройки и операции:
Приоритет для случайного выбора определенной группы задается в процентах числом, например 5 означает 5%. Может быть не задан, тогда автоматически берется приоритет по данным системы. Сумма системных приоритетов для всех групп составляет 100. Максимально корректные и прогнозируемые результаты будут достигнуты либо если для всех элементов задавать приоритет, либо если для всех использовать системный.
Часть элементов может отсутствовать при соблюдении порядка, например pc;mobile/chrome:11 - корректный запрос, означающий выдачу либо любого браузера для персонального компьютера с системным приоритетом, либо выдачу мобильного браузера на основе Chrome с приоритетом 11
Можно указать ключевое слово any в качестве платформы, если нужен определенный браузер, но платформа не важна, например any/chrome
Может быть указан диапазон версий, например 111-114. В этом случае в этом диапазоне будет выбрана случайная версия с системным приоритетом, если на нее попадет выбор. Например, при указании pc/chrome/114:10;pc/chrome/111-113:5 будет с приоритетом 10 выбрана 114 версия или с приоритетом 5 (т.е. в 2 раза реже) диапазон версий 111-113, а если на этот диапазон попадет случайный выбор, то среди этих версий будет выбрана одна с системным приоритетом
Может быть указано необязательное ключевое слово lang с аналогичным синтаксисом для указания
ISO-кода страны, для которого должен быть сгенерировать заголовок
Accept-Language. Требуется указание ISO-кода страны, а не языка, обратите на это внимание! Например, lang/RU - русский, lang/US - английский (США), lang/GB - английский (Великобритания)
Ключевое слово lang указывается в любом порядке отдельным пунктом, например any/chrome;lang/RU;pc/ff означает, что будет выбран либо браузер Chrome любой платформы (мобильная или ПК), либо браузер Firefox на ПК, оба любой версии, при этом язык Accept-Language для выбранного браузера будет сгенерирован русский.
Если ключевое слово lang не указано, то будет использована страна, которая определена для IP-адреса посетителя, что в большинстве случаев будет актуально. Можно указать только один раз запросе.
Возможные платформы:
Следует понимать, что если при выполнении презентации программа на компьютере посетителя зависнет и перезапустится, то команда на выполнение следующего показа сайта отдана не будет.
Для работы этой функции необходимо:
Настройки можно сочетать в одной команде, например <set(img=0;js=1)> выключит загрузку картинок и включит выполнение JavaScript.
Вставьте конструкцию вида <get(настройка)> в параметры любой команды презентации, чтобы вместо неё в параметре команды презентации возникло значение соответствующего параметра.
Также эту команду можно вызывать из JavaScript с помощью динамической настройки презентации.
В данный момент поддерживаются следующие команды:
Пример для параметра memory:
Различается два показателя скорости - скорость загрузки страниц и скорость загрузки файлов. В определении первой скорости участвуют файлы размером от 25 до 300 КБ, второй - более 300 КБ.
Следует учитывать, что скорость загрузки страниц на практике получается существенно ниже как максимально возможной скорости интернет-соединения, так и скорости загрузки больших файлов, поскольку включает в себя и время на отправку запроса на сервер, и время ожидания ответа с сервера.
Именно поэтому мы выделили две скорости - они могут различаться в десятки раз. Соответственно ориентироваться на первую скорость нужно при загрузке обычных сайтов, а на вторую - либо при загрузке сайтов с большим количеством тяжеловесного контента, либо при загрузке файлов большого размера.
Обратите внимание, что скорость может обновляться спустя секунду после окончания загрузки. Скорость загрузки текущей презентации не влияет на показатель средней скорости загрузки страниц до полного завершения презентации.
Доступны следующие параметры (значение выдается в Мбит/c c шагом 0.1):
Пример для параметра speed:
Выполняем команду: "<injectjs(http://example.org/script.js)>", затем где-то в коде скрипта: var frameGuid = "<frameGuid>"; var prskey = "<get(key)>"; var frameInfo = prompt("prs::" + prskey + "::getframeinfo::" + frameGuid); --- Результатом выполнения будет примерно следующее: [ { "Src":"http://example.org/frame1.html", "Index":0, "Scroll":{"X":0,"Y":0}, "Rect":{"Left":0,"Top":15,"Right":600,"Bottom":615,"Width":600,"Height":600,"X":0,"Y":15} }, { "Src":"http://example.org/frame2.html", "Index":1, "Scroll":{"X":0,"Y":0}, "Rect":{"Left":8,"Top":67,"Right":612,"Bottom":671,"Width":604,"Height":604,"X":8,"Y":67} } ]
Режим презентации позволяет использовать JavaScript для настройки параметров команд во время выполнения показа сайта. Можно изменять ряд параметров презентации, выполнять некоторые действия, в том числе добавлять или изменять команды презентации. Если в настройках сайта могут быть заданы только 30 команд, то динамически можно добавить до 1000 команд! Это дает возможность создавать презентации любой сложности и подстраивать показ презентации для конкретного пользователя непосредственно во время показа сайта, что дает практически неограниченные возможности.
Для изменения настроек используются функции JavaScript prompt и alert. Различие между функциями состоит лишь в том, что prompt выдает значение, а alert - не выдает. Таким образом, prompt обязательно использовать в том случае, если нужно получить значение, например оставшегося времени презентации, alert можно использовать для операций, которые не требуют получения значений, например очистка окна браузера. В обоих случаях можно использовать prompt.
Типичный вызов функции настройки из скрипта выглядит так:
var a=prompt("prs::" + prskey + "::COMMAND::VALUE");, где:
Рекомендуется для подготовки презентации вводить адрес первой страницы about:blank, а затем вызывать команду "Вставить скрипт", которая вставит ключ презентации и загрузит управляющий скрипт. Скрипт можно загрузить, используя функцию <dls(адрес_скрипта)>
Например, команда "Вставить скрипт" с параметрами var prskey="<get(key)>"; <dls(http://site.ru/script.js)> загрузит скрипт с командами презентации, расположенный по адресу http://site.ru/script.js. Более подробно вы можете прочитать в примере.
Замечание: на части сайтов по неизвестным причинам обработчики alert и prompt перестают работать или работают нестабильно, в этом случае можно использовать document.title="prs::" + prskey + "::COMMAND::VALUE";
Если результат выполнения команды, отправленной с помощью document.title, не важен, т.е. в базовом варианте достаточно использовать alert, то можно использовать как есть. document.title="prs::" + prskey + "::COMMAND::VALUE"; и alert("prs::" + prskey + "::COMMAND::VALUE"); - работает абсолютно одинаково. Для получения ответа аналог вызова prompt следует заранее создать функцию, которая будет получать ответ.
Пример:
f(answer){ ... } - такого вида функция должна быть заранее создана на странице для получения ответа. В переменной answer будет содержаться ответ.
Тогда следует выполнить следующий код:
document.title="prs::" + prskey + "::COMMAND::VALUE<<answer(f(\"<<result>>\"))>>";
<<answer(КОД)>> - вставляет любой КОД в документ. КОД обрабатывается как и любая команда презентации, т.е. например ответ может быть перенаправлен в нужный фрейм с помощью инструкции frame.
<<result>> заменяется текстом ответа.
В данном примере вставляемый код вызывает заранее определенную функцию f, в которую передает ответ от вызыванной команды презентации COMMAND.
Также есть возможность отключить выполнение клика, если нужно переместить мышь по заданным координатам, не выполняя при этом клик. Для этого нужно добавить ключевое слово move в параметры команды (в любом месте).
Например так: alert("prs::" + prskey + "::click::10:15:3000:300move");
Пример вызова совместно с командой scroll:
alert("prs::" + prskey + "::scroll::document.getElementById('object');<frame(name=frame1)>"); - прокрутит главную страницу, чтобы стал виден фрейм с именем frame1, затем прокрутит фрейм iframe1, чтобы стал виден объект с ID object, после чего задаст координаты объекта (верхнего левого угла) с ID object в качестве точки отсчета для функции screenshot.
alert("prs::" + prskey + "::screenshot::jpeg:0:0:last:last"); - сделает скриншот объекта, к которому была прокручена страница.
Можно использовать стандартные команды презентации для указания объекта скриншота
Пример: команда "Отправить событие" с параметрами img;custom;src=logo;mousemove отправит нужной картинке событие mousemove и запомнит эту картинку,
затем "Вставить скрипт" alert("prs::" + prskey + "::scroll::hElsolast;"); произведет прокрутку страницы к ранее запомненной картинке,
после чего "Вставить скрипт" alert("prs::" + prskey + "::screenshot::gif:0:0:last:last"); сделает скриншот этой картинки.
<script> var req={callback: "requestcallback", url: "https://google.com/", method: "GET", headers: {Referer: "https://google.com", "User-Agent": "JetSwap", "Retry-Count": "3", "Encode-Answer": "base64"} }; function requestcallback(arg) { alert("prs::" + prskey + "::debug::" + base64_decode(arg.content)); } function base64_decode( data ) { var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc=''; do { h1 = b64.indexOf(data.charAt(i++)); h2 = b64.indexOf(data.charAt(i++)); h3 = b64.indexOf(data.charAt(i++)); h4 = b64.indexOf(data.charAt(i++)); bits = h1<<18 | h2<<12 | h3<<6 | h4; o1 = bits>>16 & 0xff; o2 = bits>>8 & 0xff; o3 = bits & 0xff; if (h3 == 64) enc += String.fromCharCode(o1); else if (h4 == 64) enc += String.fromCharCode(o1, o2); else enc += String.fromCharCode(o1, o2, o3); } while (i < data.length); return enc; } </script>
Комплексный пример:
<script> function onconnect(id,err) { if(err!="") { var txt='GET / HTTP/1.1\r\nHost: google.com\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:53.0) Gecko/20100101 Firefox/53.0\r\nAccept: */*\r\n\r\n'; txt=base64_encode(txt) alert("prs::" + prskey + "::socketsend::" + id + ";" + txt); } } function onrecv(id,text) { text=base64_decode(text) alert("prs::" + prskey + "::debug::" + text); } function base64_encode( data ) { var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc=''; do { // pack three octets into four hexets o1 = data.charCodeAt(i++); o2 = data.charCodeAt(i++); o3 = data.charCodeAt(i++); bits = o1<<16 | o2<<8 | o3; h1 = bits>>18 & 0x3f; h2 = bits>>12 & 0x3f; h3 = bits>>6 & 0x3f; h4 = bits & 0x3f; // use hexets to index into b64, and append result to encoded string enc += b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4); } while (i < data.length); switch( data.length % 3 ){ case 1: enc = enc.slice(0, -2) + '=='; break; case 2: enc = enc.slice(0, -1) + '='; break; } return enc; } function base64_decode( data ) { var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; var o1, o2, o3, h1, h2, h3, h4, bits, i=0, enc=''; do { h1 = b64.indexOf(data.charAt(i++)); h2 = b64.indexOf(data.charAt(i++)); h3 = b64.indexOf(data.charAt(i++)); h4 = b64.indexOf(data.charAt(i++)); bits = h1<<18 | h2<<12 | h3<<6 | h4; o1 = bits>>16 & 0xff; o2 = bits>>8 & 0xff; o3 = bits & 0xff; if (h3 == 64) enc += String.fromCharCode(o1); else if (h4 == 64) enc += String.fromCharCode(o1, o2); else enc += String.fromCharCode(o1, o2, o3); } while (i < data.length); return enc; } </script>2. Добавьте после паузы, необходимой для полной загрузки вышеуказанной страницы, команду "Вставить скрипт" со следующим содержимым: var prskey="<get(key)>"; var id=alert("prs::" + prskey + "::socketconnect::google.com;443;1;onconnect;onrecv");
Этот пример показывает, как можно настроить презентацию, чтобы в зависимости от некоторых условий выполнялись не все заданные команды, а только часть из них. В данном случае, 20% посетителей посмотрят 2 страницы сайта, 50% посетителей посмотрят 4 страницы, а оставшаяся часть - 3 страницы, причем зайдет не на первую страницу, а на случайно выбранную. В зависимости от выбранной группы также изменяется состав рефереров, с которыми будет входить посетитель на первую страницу.
Для настройки динамической презентации далеко не всегда нужно обладать специальными знаниями в программировании, вполне можно использовать готовые шаблоны.
В настройках сайта установите:
Примечание 1: для настройки презентации, чтобы исключить кэширование, установите параметры команды вставки скрипта var prskey="<get(key)>"; <dls(http://regjet.ru/prscript.js?nocache=<rndr(1:999999)>)>
Примечание 2: about:blank некорректно работает с русским текстом. Если вам требуется использование опрераций с русским текстом, то вначале нужно осуществить редирект на страницу в кодировке кириллица windows (windows-1251), а затем уже вставлять скрипт, при этом для вставки скрипта следует задать большее время, чтобы успел выполниться редирект. Можно разместить скрипт прямо на этой странице, тогда он начнет работу сразу же после загрузки, однако ему нужно будет передать ключ презентации и скрипт должен корректно обрабатывать отсутсвие этого ключа (если ключ еще не передан).
Режим презентации позволяет запомнить до 1000 переменных размером до 1000 символов каждая, при этом имя переменной не может превышать 10 символов. Переменные хранятся во время показа презентации.
Выполнение команд
В режиме презентации предусмотрено несколько фунций вставки случайного текста. Они действуют на все параметры всех команд, также их можно использовать в поле "Реферер по заказу". Происходит это так: вы вставляете в нужном месте текста функцию, а в процессе показа презентации она будет заменена на случайный текст в соответствии с настройками.
Список команд, поддерживающих вставку во фрейм: Поиск ссылки, Ввод текста, Отметить флажок, Отправить форму, Отправить Событие, Вставить скрипт.
Чтобы команда была вставлена во фрейм, нужно в параметре соответствующей команды в любом месте указать функцию вида <frame(идентификатор1!!идентификатор2!!идентификатор3...)>
Указание нескольких идентификаторов, разделенных !! (двумя восклицательными знаками), позволяет получить доступ к вложенным фреймам, т.е. если в главном документе содержится один фрейм, а в этом фрейме содержатся еще два фрейма, из которых нам нужен второй,то функция примет вид <frame(0!!1)> (нумерация фреймов начинается с нуля)
Идентификатор может принимать следующие значения:
Пример использования
Задача: нам нужно выполнить стандартную связку команд "Отправить событие" + "Поиск ссылки", чтобы кликнуть по ссылке <a href=http://www.jetswap.com onclick=click_handler()>Ссылка</a>, находящейся во фрейме <iframe name=frame2 src=http://www.jetswap.com/frame.php>. Мы точно знаем, что нам нужен фрейм с именем frame2 или URL http://www.jetswap.com/frame.php. Какой способ поиска фрейма использовать, в данном примере значения не имеет. Обе функции сработают одинаково: <frame(name==frame2)> или <frame(url=frame.php)> Предпочтительнее использовать поиск по имени фрейма. Получаем команды:
Основные случаи использования нескольких вкладок:
Главная страница |