12.DOM анализ.

 

Перебирать ключевые запросы и ходить по ним это конечно хорошо, но нужно еще и добавляться в плейлисты. Да не просто так, а на основании каких-то данных. Например, всегда на первых местах в ютубе реклама. И не всегда у видео столько просмотров сколько нужно. Нам нужно анализировать данные со страницы. Сделать это мы можем при помощи DOM. Можете загуглить что это, тут я как всегда буду краток. Это то, как видит  наш браузер аймакрос расширение при выполнении джаваскрипт кода. А точнее, нас будет интерисовать как он видит HTML страницы. То, что мы видим глазами, у него совсем по другому. Он видит обьектами  DOM. Кроме того аймакрос имеет доступ к этим обьектам.

Начнем с простого. Всегда при обращении к обьектам страницы мы должны использовать:

потом вы поймете почему, но пока оно вам не нужно. У каждой HTML страницы есть body. Это все, что мы видим. Точнее, браузер показывает нам body страницы красиво, а на самом деле изничально это HTML код. Чтоб к нему обратиться мы можем использовать такой подход:

то есть, чтоб вывести на экран весь код страницы вы можете открыть наш файлик «тренировочный.js» и записать в него такой код:

Теперь, если его запустить, то вы увидете html код обьекта body, а в нем есть практически все что нам требуется. Есть еще ряд возможностей доступа к конкретным узлам страницы, и чтобы овладеть ими нам нужно установить дополнительное расширение firebug.

Устанавливать расширения вы уже научились, так что с этим проблем не возникнет. После установки при клике правой кнопкой мыши в любом месте документа, в меню будет доступен «инсектировать элемент с помощью фаербаг»

2015-12-09 16-08-09 Винда 7(64x) [Работает] - Oracle VM VirtualBox

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

2015-12-09 18-01-12 Винда 7(64x) [Работает] - Oracle VM VirtualBox

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

Добавьте  этот код в наш файл «тренировочный.js», зайдите на страницу выдачи ютуба, и запустите скрипт. На дисчплее выведится число 20. Мы посчитали количество выданных нам видио на одной странице. Точнее это количество топиков в которых находится видео, описание, количество просмотров, и другая дополнительная информация, которая может нам пригодится.

Для того чтоб получать доступ к каждому топику, нужно использовать такую конструкцию:

Причем цифра в квадратных скобках означает порядковый номер элемента с этим классом на странице. Другими словами номер топика сверху вниз. Особенность джаваскрипта в том что нумерация начинается с нуля. То-есть то что мы видим первым на странице, в коде будет 0. Строка кода та что выше, выведет на монитор HTML код первого топика, а в нем все что нам нужно для анализа. Еще есть вариант вывода просто текста этого топика:

Перейти к следующему уроку!

  22 комментария to “12.DOM анализ.”

  1.  

    Здравствуйте, у меня после скачивания фаербаг не появилась: «инсектировать элемент с помощью фаербаг» может не туда сохранил? в какой файл нужно сохронять рассширение?

  2.  

    Привет.

    Почему то по запросу

    content.document.body
    alert(content.document.body.innerHTML)

    я не все страницы кода вижу, а только бегунок горизонтальный

    •  

      это так неккоректно работает alert
      советую в таком случае либо написать функцию сохранения в файл txt, либо заменить на
      iimDisplay(content.document.body.innerHTML)

  3.  

    Какие еще есть способы получения доступа к элементам, кроме getElementsByClassName ?

  4.  

    Добрый день. Можно ли решить эту капчу с помощью скрипта http://prntscr.com/bpk18k? Если, да то готов обговорить условия в личке kav1962@gmail.com

    •  

      TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/login.php ATTR=TYPE:text&&hidden:hidden EXTRACT=TXT

    •  

      var arr = window.document.querySelector(‘form[class=»formCenter»]’).innerText.trim().split(» «); alert((+arr[0])+(+arr[2]))
      пусть будет, хоть и вопрос старый

  5.  

    Здравствуйте. Помогите пожалуйста, как в скрипте прописать команду нажатия именно зеленой кнопки «собрать»
    http://prntscr.com/btkx42
    сайт http://freebtc.skynet-system.com.ua/

  6.  

    Спасибо за инфу!

  7.  

    как вытащить переменную «name» отсюда

  8.  

    Здравствуйте! Не нажимается кнопка claim сайт http://btcsafari.com вернее сперва нажималась щас нет

  9.  

    вот так работало
    iimPlayCode(‘TAG POS=1 TYPE=BUTTON FORM=ACTION:/Home/BitcoinClaim ATTR=TXT:Claim’);

  10.  

    там две кнопки после капчи вот так было и работало после капчи
    iimPlayCode(‘WAIT SECONDS=3’);
    iimPlayCode(‘TAG POS=1 TYPE=BUTTON FORM=ACTION:/Home/BitcoinClaim ATTR=TXT:Claim’);
    iimPlayCode(‘WAIT SECONDS=3’);
    iimPlayCode(‘TAG POS=1 TYPE=BUTTON FORM=ACTION:/Load/Claim ATTR=ID:BtnJoin’);

  11.  


    text1


    text2


    text3

    Добрый день!
    Подскажите, есть вот такой кусок из кода страницы, нужно выдернуть текст из тегов (всего 7 записей) и отправить в определенную колонку csv таблицы со строками от 1 до 7. Не могу что-то даже выдернуть на экран, не то что в таблицу, пробовал так:

    var num = document.getElementsByTagName(‘span’).innerHTML;
    alert (‘num’)

    не выходит ничего, ошибку пишет…
    Гуру, помогите плз это мой первый опыт в js

Добавить комментарий