1. Ссылки покупок

    Стратегия на турбо опционы

    Обучение по Бинарным Опционам.

    Бизнес по рецепту. продажа женских товаров

    Мануал по добыче бесплатного трафика с поисковика Bing (2016)

    От 6к уникальных посетителей на страницу ВК

    Facebook

    Стратегия Лайв Профит - ставки на футбол

    [Ирина Шмидт] - Церебро Таргет 2016

    Новый дорген.

    Стратегия на спорт.

    Двойной арбитражник по бесплатному трафику (2016)

    Подробная инструкция по Созданию интернет магазина чая с нуля (2016)

    Чертежи солнечного био-вегетария площадью 1200 кв.м. (СБВ-Профи)

    Адский стрим по копирайтингу: то чувство, когда подглядывать - хорошо!

    Видео-Курс - Tехнология быстрого старта в email рассылках (2016)

    Продвижение партнерских программ в одноклассниках (2016)

    Научу грести трафик. Только успевай сервера покупать!

    Трафик из ВК (Схема + Кейсы)

    Пассивный доход со стабильными выплатами.Схема добычи трафика.

    Секрет создания аккаунта яндекс директ без НДС

    Система ставок от проверенного каппера

    Государственный и банковский конфискат +VIP блок (2016)

    Как работать и зарабатывать деньги на продвижении своих проектов (2016)

    Секреты бесплатной рекламы от бывшего сотрудника Вконтакте

    Mobile Арбитраж - Арбитраж мобильного трафика (2016)

    BUSINESS MANUAL - Безопасные схемы заработка

    Как получать 1000-и заказов из CPA сетей (Дм.Ковпак)

    Как зарабатывать удаленно 100 тыс. руб на продвижении в Инстаграме без вложений и жить в Тайланде

    Самонаполняемые Видео-сайты!

    Прибыльная стратегия для бинарных опционов, первый доход через считанные дни + бонус!

    Траф с Вк за копейки

    Профит на онлайн теме от 30к до Неизвестно в месяц

    Легальный высокодоходный бизнес в реале

15.Выбор элементов из массива. Метод click().

  1. Ostapbl4
    Offline

    Ostapbl4 Команда форума Местный
    Начать переписку

    Ну что же, самое страшное уже позади. Фактически мы написали с вами два рабочих куска кода:

    Первый берет поисковые слова из файла и переходит по ним.

    Второй собирает все ссылки на видео на странице выдачи.

    Нам осталось написать третий кусочек, который будет вытягивать ссылки из нашего массива, переходить по ним, и добавлять видео в плейлист:
    Код:
    for (i=0; arrUrl.length>i; i++){//пока переменная меньше длины массива (arrUrl.length)выполняем цикл в скобках:
    var macro; // создаем переменную macro
    macro = "CODE:"; // говорим нашему скрипту что в нее впишем код аймакрос
    macro += "URL GOTO="+arrUrl[i] + "\n"; // переходим по ссылке
    macro += "WAIT SECONDS=2"+ "\n";// даем задержку по времени в 2 секунды для загрузки
    macro += "TAG POS=1 TYPE=BUTTON ATTR=TXT:Добавить<SP>в"+ "\n";// кликаем на окошко "добавить в"
    macro += "WAIT SECONDS=2"+ "\n";// даем задержку по времени в 2 секунды для загрузки
    iimPlay(macro) // вызываем переменную запуская тем самым код, который туда вписали.
    content.document.getElementsByClassName('addto-playlist-item yt-uix-button-menu-item')[0].click()//ставим галочку "Посмотреть позже"
    }
    Отдельно этот кусочек не будет работать, потому что в нем мы используем массив arrUrl из прошлого фрагмента кода, но давайте сначала разберем по строкам, а потом обьеденим все воедино. Итак, 1 строка:
    Код:
    for (i=0; arrUrl.length>i; i++){//пока переменная меньше длины массива (arrUrl.length)выполняем цикл в скобках:
    обычный цикл, какой мы использовали уже раньше. Но обратите внимание, длину массива arrUrl.length мы уже не заносим предварительно в переменную, а используем прям в условии.

    И особо важно понять строку 4:
    Код:
    macro += "URL GOTO="+arrUrl[i] + "\n"; // переходим по ссылке
    В аймакрос код мы вставили данные элемента массива. Для того чтоб вклеять, как всегда используем плюс. Но вот сам элемент массива мы вытягиваем таким способом:
    Код:
    arrUrl[i]
    Тут уже упоминалось о том, что мы мажем получать данные любого элемента массива по индексу.

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

    В строке 5 и 7 у нас новая команда аймакрос:
    Код:
    macro += "WAIT SECONDS=2"+ "\n";// даем задержку по времени в 2 секунды для загрузки
    строка 6:
    Код:
    macro += "TAG POS=1 TYPE=BUTTON ATTR=TXT:Добавить<SP>в"+ "\n";// кликаем на окошко "добавить в"
    Повторюсь, как я добываю такие команды:

    Открыл страницу ютуба, поставил аймакрос на запись.

    Нажал на элемент на странице ютуба «Добавить в»

    Закрыл запись, открыл файлик #Current.iim, в который пишутся действия

    Скопировал команды, вставил в джаваскрипт.

    Теперь очень важная строка 9:
    Код:
    content.document.getElementsByClassName('addto-playlist-item yt-uix-button-menu-item')[0].click()//ставим галочку "Посмотреть позже"
    Это клик на первой галоче в выпавшем списке. Эта галочка добавляет видео в плейлист «Посмотреть позже». Клик этот происходит посредством метода

    Код:
    .click()
    
    Если раньше мы делали клики командами аймакроса, то тут используется джаваскрипт. В этом подходе есть свой плюс. Если в квадратных скобках поменяем ноль на другую цифру, то видео будет добавляться в другой плейлист. Мы вообще можем поставить простенький цикл, и видео добавится во все плейлисты. То есть мы оставляем себе возможность на будующее.

    Но в этом способе есть так же и минус. Дело в работе расширения. Код аймакрос выполняется более правильно. Если какой-то элемент не найдется на странице, аймакрос поступит согласно настройкам программы, скорее всего пойдет дальше. А вот уже чистый джаваскрипт работает по-другому. Иногда, если элемент DOM не будет найден на странице, то работа скрипта прирвется с ошибкой. На такие случаи можно поставить проверку на наличие этого элемента, и этот вопрос мы позже затронем. А пока я дал по две секунды задержки после каждой команды, чтоб страница браузера нормально загрузилась.


    Ну что же, пора объеденить весь код который у нас получился и запустить для тестирования:
    Код:
    for (a=1;1<2;a++){//создаем переменную a, цикл вечный
    var macro; // создаем переменную macro
    macro = "CODE:"; // говорим нашему скрипту что в нее впишем код аймакрос
    macro += "CMDLINE !DATASOURCE C:\\iMacros\\Macros\\Обучение\\zapros.txt" + "\n"; // подключаем текстовый файл
    macro += "SET !DATASOURCE_LINE "+a+ "\n";// из какой по счету строки брать данные
    macro += "ADD !EXTRACT {{!COL1}}" + "\n"; // берем данные в переменную {{!COL1}}
    iimPlay(macro) // вызываем переменную запуская тем самым код, который туда вписали.
    var zapros = iimGetLastExtract(1)// создаем переменную zapros в которую помещаем EXTRACT
    if(zapros!=null){
    iimDisplay('строка   '+ a +'   запрос '+ zapros) //
    macro += "URL GOTO=https://www.youtube.com/?gl=UA&hl=ru" + "\n"; // заходим на ютуб
    macro += "TAG POS=1 TYPE=INPUT:TEXT FORM=ID:masthead-search ATTR=ID:masthead-search-term CONTENT={{!COL1}}" + "\n"; // вбиваем в поиск данные из переменной
    macro += "TAG POS=1 TYPE=BUTTON FORM=ID:masthead-search ATTR=ID:search-btn" + "\n"; // нажимаем поиск
    iimPlay(macro) // вызываем переменную запуская тем самым код, который туда вписали.
    }
    else {
    iimDisplay('Cтрока пуста,  прошли строк: '+ (a-1))
    break
    }
    
    var arrUrl = [] //создаем массив в который будем добавлять ссылки на видосики
    var minKolvo =10000 //обозначаем минимальное количество просмотров
    var kolvoTopikov = content.document.getElementsByClassName('yt-lockup clearfix yt-uix-tile yt-lockup-video yt-lockup-tile').length //количество топиков на странице
    for (i=0;i<kolvoTopikov;i++){
    var stroka = content.document.getElementsByClassName('yt-lockup-meta')[i].innerHTML //присваеваем переменной stroka значение с которым будем работать
    stroka=stroka.replace(/\&nbsp;/g, "") //удалит все символы &nbsp; из нашей строки
    stroka=stroka.replace(/\s+/g, "") //удалит все пробелы из нашей строки
    stroka = stroka.split('</li><li>')[1]// разделим содержимое переменной stroka и оставим только вторую часть. Джаваскрипт, как всегда, считает с 0
    stroka = parseInt(stroka)
    if (stroka>minKolvo ){//если строка больше минимально нужного количества и не NaN выполняем этот код
    var url = content.document.getElementsByClassName('yt-uix-sessionlink yt-uix-tile-link yt-ui-ellipsis yt-ui-ellipsis-2')[i].href//выбираем ссылку в переменную url
    arrUrl.push(url)//добавляем url в массив
    iimDisplay('количество ссылок : '+ arrUrl.length+'  Ссылки : '+ arrUrl) //выводим на экран
    }
    }
    for (i=0; arrUrl.length>i; i++){//пока переменная меньше длины массива (arrUrl.length)выполняем цикл в скобках:
    var macro; // создаем переменную macro
    macro = "CODE:"; // говорим нашему скрипту что в нее впишем код аймакрос
    macro += "URL GOTO="+arrUrl[i] + "\n"; // переходим по ссылке
    macro += "WAIT SECONDS=2"+ "\n";// даем задержку по времени в 2 секунды для загрузки
    macro += "TAG POS=1 TYPE=BUTTON ATTR=TXT:Добавить<SP>в"+ "\n";// кликаем на окошко "добавить в"
    macro += "WAIT SECONDS=2"+ "\n";// даем задержку по времени в 2 секунды для загрузки
    iimPlay(macro) // вызываем переменную запуская тем самым код, который туда вписали.
    content.document.getElementsByClassName('addto-playlist-item yt-uix-button-menu-item')[0].click()//ставим галочку "Посмотреть позже"
    }
    
    }
    У нас выходит что в цикл который берет слова из файла zapros.txt и переходит по запросам, мы вставили тот код который отвечает за сбор ссылок в массив, переход по ним и добавлением в плейлист. В итоге вышел скрипт, который будет работать пока есть поисковые запросы в файле. Обратите внимание, что в общем цикле я заменил переменную i на a. (строки с 1 по 19). Так бы была бы ошибка, потому что переменная используется и в других циклах.

    Перейти к следующему уроку!
     
    Последнее редактирование: 26 янв 2016

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