Полезная информация

Вы можете получить техническую поддержку и просто поболтать в jabber-конференциях Mozilla Россия: support@conference.mozilla-russia.org — для решения проблем с программами Mozilla, talks@conference.mozilla-russia.org — для общения на свободные темы.

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 17-07-2018 14:28:41

Compunella пишет:

Так строчка может растянуться на киломерт.

Конкатенация в помощь

скрытый текст

Выделить код

Код:

iimPlayCode('TAG POS=19 TYPE=STRONG ATTR=TXT:Участник EXTRACT=TXT\n'+
            'TAG POS=19 TYPE=STRONG ATTR=TXT:Members EXTRACT=TXT\n'+
            'TAG POS=19 TYPE=DD ATTR=TXT:Группа:* EXTRACT=TXT\n'+
            'SAVEAS TYPE=EXTRACT FOLDER=C:\\ FILE=1.csv');


Или использовать гравис
скрытый текст

Выделить код

Код:

iimPlayCode(`
    TAG POS=19 TYPE=STRONG ATTR=TXT:Участник EXTRACT=TXT
    TAG POS=19 TYPE=STRONG ATTR=TXT:Members EXTRACT=TXT
    TAG POS=19 TYPE=DD ATTR=TXT:Группа:* EXTRACT=TXT
    SAVEAS TYPE=EXTRACT FOLDER=C:\\ FILE=1.csv
`);


Да, ещё обратным слешем можно разбивать строковый литерал

[spoiler]

Выделить код

Код:

iimPlayCode('TAG POS=19 TYPE=STRONG ATTR=TXT:Участник EXTRACT=TXT\n\
             TAG POS=19 TYPE=STRONG ATTR=TXT:Members EXTRACT=TXT\n\
             TAG POS=19 TYPE=DD ATTR=TXT:Группа:* EXTRACT=TXT\n\
             SAVEAS TYPE=EXTRACT FOLDER=C:\\ FILE=

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 17-07-2018 12:20:58

OMG, понеслась клоунада со сменой пола и размножением клонов. Если б ты с таким же рвением FAQ по макросу читал. ;)

Compunella пишет:

Я так поняла, что форумчанин Squatter умышленно написал так код js, чтоб он не сохранял нужный текст.

Да, совершенно верно. Умышленно, чтобы кое-кто включил наконец соображалку и допетрил подогнать чистый пример под свои нужды. Но этого, увы, не произошло. Видимо злые чары мешают сделать это третий день подряд. :D

Уже два раза чёрным по белому написали, смени экстракты с колами на свои директивы, извлекающие текст со страницы и засунь их в один iimPlayCode(). В конечном итоге, готовый пример посмотреть не судьба? https://forum.mozilla-russia.org/viewto … 35#p759535


Это что, так трудно?
[spoiler][code]//При условии что команды извлекающие контент составлены правильно
iimPlayCode('TAG POS=19 TYPE=STRONG ATTR=TXT:Участник EXTRACT=TXT\nTAG POS=19 TYPE=STRONG ATTR=TXT:Members EXTRACT=TXT\nTAG POS=19 TYPE=DD ATTR=TXT:Г

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 16-07-2018 14:03:21

Герман пишет:

Потому и облажались вы, когда вызвались помочь хорошему человеку (мне)

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

Герман пишет:

А где сохранение текста?

На скриншоте, который вы выложили. На нём сохранённый по колонкам текст, который перед этим извлекли через ADD !EXTRACT.
И вы мне ещё тут что-то про зрение будете говорить, когда сами в упор не видите что заскринили?

P.S. Не умеете корректно формулировать вопрос и понимать что вам подсказывают – не жалуйтесь на плохую помощь.

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 16-07-2018 13:33:05

Герман нерабочий и бездарный тут пока только ваш код, т.к. вы не знаете элементарного как iim код переложить в JS
Прежде чем глупо дерзить и бестолковиться, читайте что сами писали

Герман пишет:

У меня не получается решить такую задачку: как написать код, который сохраняет текст в файл с расширением csv в разные столбцы? Например в столбец A, B, C

Слов "c сайта" в ваших первых двух постах нет. Как сформулировали, так вам и ответил. Поэтому не вам заикаться о "туфте", коль сами не помните, что спрашивали.

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 16-07-2018 12:45:23

Герман пишет:

И что этот ваш код сохраняет?

Сохраняет по колонкам, как и было задумано. Или вы думали вам тут всё расскажут, разжуют и ещё и сценарий за вас напишут? Тогда вам в отдел заказов платных скриптов.
А с тем, что вам нужно извлечь с сайта – справляйтесь сами.
Вопрос был как сохранять по колонкам? Ответ дан два раза с рабочими примерами для iim и JS.
Что ещё надо? Cпарсить за вас всё нужное с сайта? Или начнёте уже самостоятельно знакомиться с темой, коль уж бравурно заявили, что учитесь "программированию на java-скрипт языке"? ;)

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 16-07-2018 11:49:16

Герман
Разницу не видите, что я написал и что вы выложили? Естественно у вас ничего не сохраняется, т.к. экстракты и сохранение в разных вызовах iimPlayCode()
Читайте вики по макросу

скрытый текст
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.


скрытый текст

Выделить код

Код:

iimPlayCode('ADD !EXTRACT col-A\nADD !EXTRACT col-B\nADD !EXTRACT col-C\nSAVEAS TYPE=EXTRACT FOLDER=C:\\ FILE=1.csv');


Герман пишет:

Ну вы раз взялись подсказать, помочь человеку, дак хоть напишите что, да как.

Уже написал. А разжевывать до молекул такую элементарщину вам тут никто не обязан. Есть wiki.imacros  и есть поиск по форуму, где ответ на этот вопрос уже неоднократно дан. Мало того вам даже лень пример посмотреть на предыдущей странице :facepalm:

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 15-07-2018 18:23:24

Пример на предыдущей странице

скрытый текст

Выделить код

Код:

ADD !EXTRACT A
ADD !EXTRACT B
ADD !EXTRACT C
//И только потом сохранение
SAVEAS TYPE=EXTRACT FOLDER=D:\ FILE=1.txt
SET !EXTRACT NULL


Так экстракты в порядке их вызова лягут по колонкам.


З.Ы. Это не JS, а лишь обёртка на него и некоторые браузерные методы.

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 10-07-2018 02:50:31

kariorambo пишет:

В общем так я и не понял, для чего надо убирать точки

Они никуда не убираются, а лишь строго воспринимаются движком регулярок как точки при экранировании. В противном случае точка означает поиск любого одиночного символа, кроме символа новой строки. И в следующем примере IP будет найден там, где вместо точек в строке стоят другие символы

скрытый текст

Выделить код

Код:

var str = "169x42z102y87";

if (str.match(/169.42.102.87/)) {
    alert("Нашел IP в строке");
} else {
    alert("Не нашел IP в строке");
}


Хотя это не критично в вашем простом случае, но забывать об экранировании спецсимволов не стоит. Изучайте регулярные выражения
скрытый текст
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 06-07-2018 03:07:26

При условии, что в файле только список адресов в одну колонку, и этот список сохранён чисто (без случайных пробелов и прочего мусора)

скрытый текст

Выделить код

Код:

//ip который ищем
var ip = "185.220.102.4";
//Массив строк из файла
var arrIp = imns.FIO.readTextFile(imns.FIO.openNode("C:\\Users\\ip.txt")).match(/^.+/mg);
//Смотрим в массиве наличие ip
if (arrIp.indexOf(ip) !== -1) {
    alert("Нашел IP в файле");
} else {
    alert("Не нашел IP в файле");
}


Значение переменной arrIp естественно должно обновляться после сохранения в файл новых адресов.


Еслли в файле не одна колонка, то придётся дополнительно прогонять строки в цикле примерно так

[spoiler]

Выделить код

Код:

//ip который ищем
var ip = "185.220.102.4";
//Массив строк из файла
var arrIp = imns.FIO.readTextFile(imns.FIO.openNode("C:\\Users\\ip.txt")).match(/^.+/mg);

for (i=0;i<arrIp.length;i++) {
    //Смотрим в массиве наличие ip
    if (arrIp[i].match(/[^"",;]+/g)[0] == ip) {
        alert("Нашел IP в файле");
    } else 

iMacros » Цикл чтения построчно из тхт файла. » 13-06-2018 15:40:19

Как вариант

скрытый текст

Выделить код

Код:

var locPath = "C:\\test.txt";//Полный путь до файла

/********************************* описание функции *********************************/

var readFile = path => imns.FIO.readTextFile(imns.FIO.openNode(path)).match(/^.+/mg);

/********************************** вызов функции ***********************************/

var arr = readFile(locPath);//Вернёт массив всех не пустых строк из файла
window.console.log(arr);

var str_1 = readFile(locPath)[0];//Вернёт первую строку из файла
window.console.log(str_1);

var str_2 = readFile(locPath)[1];//Вернёт вторую строку из файла
window.console.log(str_2);

var str_3 = readFile(locPath)[2];//Вернёт третью строку из файла
window.console.log(str_3);

//и т.д.


Правда для себя так и не определился, хранить в переменной весь текст/массив или каждый раз обращаться к файлу. Делаю по-разному в зависимости от размера файла.

iMacros » [РЕШЕНО] Работа с поисковиком google.com » 07-06-2018 09:58:11

И в чём сложность? Два параметра в ссылке

скрытый текст

Выделить код

Код:

https://www.google.com/search?q=тест&start=0

//ключевое слово для поиска

q=тест

//Шаг 10

start=0//1 стр.
start=10//2 стр.
start=20//3 стр.

iMacros » Подскажите по циклу » 23-04-2018 13:48:50

Как вариант вложенными циклами.

1. Можно собрать имена файлов в массив и перебирать этот массив циклом подставляя в локальный путь полученное имя файла

скрытый текст

Выделить код

Код:

var arrFileName = ['1.txt','2.txt','3.txt','4.txt','5.txt','6.txt'];

for (var a=0;a<arrFileName.length;a++) {
    var send = imns.FIO.readTextFile(imns.FIO.openNode(path+'\\'+arrFileName[a])).match(/^.+/mg);
    for (var i=0;i<send.length;i++) {
        var tx = window.document.querySelector('textarea.replyarea');
        if(tx === null) { continue; }
        tx.value = send[i];
    }
}


2. Можно делать инкремент цифры подставленной в имя файла, заведомо назначив файлам имена с цифрами
[spoiler]

Выделить код

Код:

var sumFile = 6;//Количество файлов

for (var a=1;a<=sumFile;a++) {
    var send = imns.FIO.readTextFile(imns.FIO.openNode(path+'\\'+a+'.txt')).match(/^.+/mg);//1.txt на первой итерации, 2.txt на второй и т.д.
    for (var i=0;i<send.length;i++) {
        var tx = window.document.querySelector('textarea.rep

iMacros » Генереция новой страницы -> генерит новые имена как их считать? » 13-04-2018 07:26:46

Scorp1978 пишет:

уже другие, и где здесь ссылка на фрейм?

Значит так "прямо" вставили код, если получили

TypeError: window.document.querySelector(...) is null

Повторно использовать можете, хотя бы элементарно так

скрытый текст

Выделить код

Код:

SET !ENCRYPTION NO
TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:enter.php ATTR=type:text CONTENT=1234554321
TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:enter.php ATTR=type:password CONTENT=dfdfdfdfdf


Можете ещё в настройках записи поставить experimental event recording и тогда пропишется полный путь к этим инпутам по селекторам.

Читать описание команды "TAG" и изучать селекторы
скрытый текст
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.


Для примера, как получить значение атрибутов  "name" у всех input на странице, у которых есть такой атрибут
[spoiler]

Выделить код

Код:

var inputNode = content.document.querySelectorAll('input[name]');
var attrVal = '';
alert(inputNode.length);
for (i=0;i<input

iMacros » Генереция новой страницы -> генерит новые имена как их считать? » 12-04-2018 07:50:42

Scorp1978 пишет:

ну вопрос то у меня не в рекапчи а вот в этом куске

Вся форма во фрейме поэтому

TypeError: window.document.querySelector(...) is null

Либо ссылку на страницу, либо читайте как получить доступ к фрейму, например здесь

скрытый текст
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.


Для начала, попробуйте записать действия макросом, а там увидите, появится ли F 1-n в результате. imacros тоже умеет работать с фреймами. Касательно функций, вам уже karginaolga дала рабочий пример, как по атрибуту поучить элемент.

Вытащить значение атрибута можно .getAttribute("attr_name");

iMacros » Генереция новой страницы -> генерит новые имена как их считать? » 11-04-2018 19:50:56

Код рабочий для выложенного куска HTML. Рекапча - значит фрейм. Типично.

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 04-04-2018 03:46:43

InfSub
Согласен. Вопрос к тому, как написана демка. Достаточно вставить в неё alert() и реверс обфускации, чтобы его выковырнуть, уже делать никто не будет

скрытый текст
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.


А с алертом сценарий бесполезен.

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 04-04-2018 01:40:34

Во-первых, без анализа, чужой обфусцированный код не каждый рискнёт запускать, если есть голова на плечах.
Во-вторых, на обфускацию и подобный межсайтовый скриптинг, предложенный в спойлере, у комьюнити обязательно будут ругаться антивирусы. Что конечно не играет в пользу идеи публикации демок с сылками на зашифрованные скрипты. Но сама обфускация, как метод сокрытия наработок, очень даже имеет смысл.
Буквально позавчера выдирал с codenet.ru функцию encodeURL в кодировке windows-1251. Был бы код обфусцирован – даже возиться бы не стал. И мало кто стал бы. ;)

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 04-04-2018 00:46:16

Алим
Хорошо. И в чём соль? Он просто добавляет в body текущей страницы тег <script> c соответствующим адресом подключения.

То же самое на чистом JS

скрытый текст

Выделить код

Код:

var s=window.document.createElement("script");
    s.src="https://cdn.antcpt.com/imacros_inclusion/recaptcha.js";
    window.document.body.appendChild(s);

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 03-04-2018 18:00:05

Ни кто ж не помешает перейти по урлу из скрипта

Если он его обфусцирует, то это усложнит задачу.

А так, первое, что приходит в голову, парсить js с сайта и подставлять строкой в URL GOTO

скрытый текст

Выделить код

Код:

    var js = "location.href='https://forum.mozilla-russia.org/viewtopic.php?id=66458'";
    iimPlayCode("URL GOTO = javascript:"+js);


если js не в файле а допустим в теле HTML страницы

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 03-04-2018 16:52:28

Смотрите FAQ

запуск *.js-файла из *.js:

то скрипт воспроизводится, но js-код не берёт.

Непонятно что не берёт и зачем воспроизводить iimPlayCode() внутри js?

iMacros » Управление сайдбаром аймакроса » 28-03-2018 15:46:40

Нет акка в днокласниках чтобы проверить, но первое что бросается в глаза

скрытый текст

Выделить код

Код:

quersel=window.document.querySelectorAll;


получается храните querySelectorAll в переменной  для текущего документа. Никаких проблем не возникает при смене страницы?

Лучше в функцию заворачивать

скрытый текст

Выделить код

Код:

function qSelectorAll(selAll) { return content.document.querySelectorAll(selAll); }

//вызов
qSelectorAll('.input_placeholder')[0];

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 07-03-2018 00:02:27

Кто сталкивался, подскажите пожалуйста, какой параметр правильно указывать в expiry_date для  сессионной cookie

скрытый текст

Выделить код

Код:

Services.cookies.add(".host.example.com", "/cookie-path", "cookie_name", "cookie_value", is_secure, is_http_only, is_session, expiry_date);

Описание тут

Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.


Атрибуты описаны тут
скрытый текст
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.


Если ничего не ставить в expiry_date, то куки не ставится

Ставлю так
is_session = true
expiry_date = Date.now()

скрытый текст

Выделить код

Код:

Services.cookies.add(".host.example.com", "/cookie-path", "cookie_name", "cookie_value", false, false, true, Date.now());


Всё ставится, но пра

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 24-02-2018 05:27:32

genstrijen пишет:

а не все подряд, как в варианте Squatter

Ограничение по домену не оговаривалось. Просили все картинки со страницы, то и получили вместе с дублями. :)

InfSub, или так

скрытый текст

Выделить код

Код:

iimPlayCode("URL GOTO=https://forum.onliner.by/viewtopic.php?t=919197&start=0")
do {
    var i=1;
    while(iimPlayCode('ONDOWNLOAD FOLDER=* FILE=* WAIT=YES\nSET !TIMEOUT_STEP 1\nTAG POS='+(i++)+' TYPE=IMG ATTR=SRC:*//content.onliner.by/forum/* CONTENT=EVENT:SAVEPICTUREAS')==1){ iimDisplay(i-1); };
} while (iimPlayCode("SET !TIMEOUT_STEP 1\nEVENT TYPE=CLICK SELECTOR=\".page-next>a\"")==1);


Т.е. можно не расчитывая айдишники ссылок стартовать скрипт с любой страницы благодаря пагинации .page-next.

P.S. На последних страницах ссылки на картинки уже по https, поэтому подправил.

iMacros » iMacros for Firefox - общие вопросы, обсуждение возможностей (часть 2) » 22-02-2018 17:33:46

genstrijen, читайте тут про разницу команд

скрытый текст
Войдите или зарегистрируйтесь, чтобы увидеть скрытый текст.


SAVEITEM извлекает из кеша браузера, что само собой быстрее.

---UPD
googlenoob, касательно {{!NOW:yyyymmdd_hhnnss}} заметил, что сохранение маленьких картинок может происходить в десятые доли секунды, поэтому тут либо "fffff" дописывать к формату времени, если такое возможно(не проверял), либо генерить рандомное имя. В противном случае в цикле будет давать файлам одинаковое имя и соответственно перезаписывать их.

Вот проще вариант
скрытый текст

Выделить код

Код:

var nodelist = content.document.querySelectorAll('img');
for (i=1;i<=nodelist.length;i++) {
       iimPlay("CODE:ONDOWNLOAD FOLDER=C:\download\ FILE=00"+i+"-"+Math.floor(Math.random()*100000)+" WAIT=YES\nTAG POS="+i+" TYPE=IMG ATTR=SRC:* CONTENT=EVENT:SAVEITEM");
}


Будет скидывать все картинки со страницы без учёта расширения. А вообще лучше оставлять родные имена файлов [b]FI

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]