Twitter — написание парсера твитов

Парсер твиттер iMacros

Сегодня в статье я хочу показать пример написания парсера твиттер iMacros. В статье подробно описан весь путь создания макроса. В своей работе я буду использовать только Firefox и дополнение к нему iMacros. Вся реализация будет стандартными средствами.
Суть задачи: парсинг текста твитов из выбранного аккаунта, предварительно открытого в браузере. Количество скачиваемых твитов будем регулировать с помощью установки количества повторений. Результаты извлечения сохраняются в текстовый файл.
В качестве подопытного испытуемого используется:

Первое что делаем, это пробуем извлечь первый твитт из Twitter.

На тексте первого твитта нажимаем правой кнопкой мыши (шаг 1) и в контекстном меню выбираем «Исследовать элемент» (Inspect Element) (шаг 2). Открывается инспектор и выделяется нужный HTML-код. Чуть выше вижу следующий контейнер (блок div):

Twitter iMacros

Его я и буду использовать в работе. Теперь можно написать первую команду TAG:

Сохраняем файл, и запускаем. Наблюдаем такую картину:

Twitter макрос

Границы первого твитта (а именно текстовая часть) обрамляются синией рамкой.

При помощи параметра EXTRACT добавляем извлечение текста из выбранного блока. Получаем следующую команду:

После того как запустим команду появляется такое окно:

iMacros твиттер

Благодаря этому окну можно проверить что текст, содержащийся в переменной !EXTRACT, действительно соответствует первому твитту. Поскольку это так, продолжаем написание макроса для Twitter iMacros и сейчас отключаем появление всплывающего окна, для этого в начало макроса нужно добавить команду:

Пришло время написать код для сохранения извлеченного текста (содержится в переменной !EXTRACT) в текстовый файл (* указывает на папку iMacros/Downloads, название файла — twitter.txt), воспользуемся командой SAVEAS:

Я хочу немного улучшить работу макроса, для этого файл будет сохраняться под именем пользоватьеля, то есть twitter.txt превратится в Twitter.txt (согласен, пример плохой, но «Twitter» это имя аккаунта). Имя получать я буду отсюда:

Парсер твиттер iMacros

Команда для извлечения имени:

Записываем ее в начало макроса, в результате получаем следующий файл:

Возникает конфликт переменной !EXTRACT, т.е. вначале в нее записали имя twitter аккаунта, а потом твитт. Чтобы этого избежать введу новую переменную {{FileName}} (при помощи команды SET) и очищу переменную !EXTRACT. Код преобразуется к следующему виду:

Пробуем сделать что бы данная команда работала в цикле, для этого добавляем !LOOP к команде, которая извлекает твитты. В результате получится:

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

Соберем все команды твиттер iMacros вместе:

Запускаю выполнение в цикле для парсинга 100 твитов. Все команды отработали хорошо, единственное, что мне не нравится, что твиты плохо записываются в файл:

Парсер твиттер макрос

Это можно исправить используя команду EVAL и некоторые возможности JavaScript, а именно функцию trim() над строкой, результат записывается в !EXTRACT для дальнейшего сохранения:

Код для парсинга твиттер iMacros:

И вот такой результат в файле:

Парсер твиттер

1 Комментарий

  1. Олег

    Отличный сайт! Очень помог разобраться в одном макросе, а я в них ни бум-бум 🙂

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *