Нажмите "Enter", чтобы перейти к содержанию

!EXTRACT

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

Рассмотрим команду EXTRACT на примере. Зайдем на наш сайт и здесь нас интересует раздел полигон, тема основные шрифты. Допустим мы хотим извлечь первую строчку где написано Arial, записываем макрос метод записи обыкновенный, жмем запись, кликаем по элементу который нам необходимо извелечь и добавляем EXTRACT=TXT.

Очень часто бывает что указанный элемент не извлекается или извлекается значение undefined, или значение не определено. Во избежание таких осечек неплохо вначале протестировать макрос и проверить извлекается ли действительно, то что нам надо.

Самый простой способ это проверить добавить после EXTRACT=TXT командуPROMPT {{!EXTRACT}} которая выведет нам извлеченное содержимое если оно есть и пустое окно если извлечь ничего не удалось.

Убедившись что наш Экстракт попал в цель мы можем сохранить данные в файл формата txt либо csv. Для этого добавляем команду знакомую вам из прошлого видео, SAVEAS TYPE=EXTRACT FOLDER=* FILE=result.txt. Хотим сохранить в csv нет проблем меняем разширение на FILE=result.csv. Запустим макрос и имеем в папке downloads файл result.csv c единственной строкой «Arial».

Предположим мы хотим извлечь название всех шрифтов, для этого вместоTAG POS=1 пишем следущее TAG POS={{!LOOP}} что будет значить перебрать в цикле. Проверем наш макрос на практике и восроизведем в цикле к примеру 20 раз итогом работы получим файл result.csv с 20 строками в которых будут названия наших шрифтов, и одна пустая строка, где значение получить не удалось или его просто нет.

Кроме самого текста мы можем извлекать и другие элементы со страницы, к примеру мы можем извлечь содержимое тега title. Для этого перейдем на страницу Poligon — взаимодействие со страницами и запишем простой макрос который будет, совершать клик по изображению.

Метод записи будем использовать стандартный + поставим галку favor element id. Оставим наш макрос пока впокое и рассмотрим что же из себя представляют интерисующие нас элементы, кликаем по элементу второй клавишей мыши и выбираем просмотр кода элемента или изследовать элемент. Как мы видим данный элемент имеет идентификатор id=»img1″, а все последуйщие элементы имеют идентификатор на единицу больше. Представим что нам нужно извлечь содержимое title всех данных изображений, допустим для того чтобы иметь представление о том что же на них изображено.

Модифицируем наш макрос согласно нашей задаче

изменим на

тем самым мы переберем по порядку циклом все наши изображения где idначинается на img. Далее добавим EXTRACT=TITLE а на следуйщей строке выведем извлеченное содержимое спомощью команды PROMPT={{!EXTRACT}}Теперь убедившись что необходимые данные нам извлекаются мы можем сохранить их в файл конечный макрос будет выглядить так.

Еще одним частым действием которое приходится совершать при работе с аймакрос, это извлечение URL из ссылок или изображений. Работать мы так же в разделе полигон, взаимодействие с элелементами. Нас здесь интерисуют ссылки которые идут сразу после изображений с которыми мы только что работали.

Извлекать URL из ссылок мы будем абсолютно идентичным образом, как и при извлечении содержимого тега title. Вначале мы рассмотрим что из себя представляют данные элементы. Жмем исследовать элемент и видим что мы имеем обыкновенные ссылки с идентификатором от lin1 до lin5.

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

мы с вами его модифицируем до следуйщего состояния

тем самым мы переберем все ссылки с id начинающиеся на lin. Далее добавим EXTRACT=HREF и на следуйщей строчке проверим извлекается ли нашURL при помощи PROMPT {{!EXTRACT}}. Протестировав наш макрос и убедившись в его работоспособности мы можем сохранить наши данные в файл и итоговый макрос будет выглядить так.

Точно также мы можем из можем извлекать URL картинок, все происходит по той же формуле. На последок покажу вам как извлечь URL и перейти по нему в другой вкладке. Многие наверно уже догодались как это сделать но всетаки покажу как это можно осуществить. Записываем простой макрос где мы извлекаем URL из ссылки, это делать мы уже научились. Затем пишемURL GOTO= и заносим туда значение !EXTRACT, итого получаем:

 

4 комментария

  1. marina
    marina 01.09.2016

    подскажите пожалуйста или направьте в правильное русло — как правильно парсить black list в контакте? надо сохранить всех забаненых пользователей из списка в такой же последовательности что и на сайте в txt файл. пробовал заходить поочередно loop ом на каждого пользователя из блек листа и делать extract в файл ссылку curenturl, но макрос парсит и сохраняет первые 20 или 25 юзеров, те, которые загрузились на первой странице, дальше надо прокручивть страницу вниз и так с каждым разом количество прокручиваний увеличивать. пробовал загнать в цикл, но почему то так цикл срабатывает for (i=1;i<3;i++){
    var macro;
    macro = "CODE:";
    macro += "set !errorignore yes" + "\n";
    macro += "TAG POS=1 TYPE=A ATTR=ID:group_bl_title*" + "\n";
    macro += "wait seconds=3" + "\n";
    macro += "BACK" + "\n";
    iimPlay(macro)
    }, а так нет for (i=1;i<3;i++){
    var macro;
    macro = "CODE:";
    macro += "set !errorignore yes" + "\n";
    macro += "TAG POS={{i}} TYPE=A ATTR=ID:group_bl_title*" + "\n";
    macro += "wait seconds=3" + "\n";
    macro += "BACK" + "\n";
    iimPlay(macro)
    }. Помогите пожалуйста. Может есть более простой способ выгрузить весь блек лист, не заходя на каждого юзера, например вытянуть их из , но я не знаю как это правильно сделать. Буду очень благодарен за намек. Спасибо.

  2. Bolt
    Bolt 13.10.2016

    Так чего утебя страница вниз не прокручивается?

  3. Вася
    Вася 03.01.2017

    спасибо. но как вставлять извлеченные данные в csv не в столбик а в строчку???

  4. Алекс
    Алекс 31.01.2017

    А если данные не извлекаются? Например мне надо скопировать ссылку ( не кликабельную ) и перейти по ней во второй вкладке, как это можно сделать?

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

%d такие блоггеры, как: