Генератор парсеров BrowserExt

Создание парсера фильмов imdb top 250 (видео)



Рассмотрим пример создания парсера списка фильмов из imdb top 250, который находится на странице http://www.imdb.com/chart/top. На странице мы увидим таблицу со ссылками на страницы фильмов. Сначала соберем эти ссылки и по очереди будем загружать каждую из них. На странице с фильмом соберем название, год, позицию в топе, актеров и прочие характеристики. Собранные данные будем сохранять в CSV формате.

Для начала создадим парсер с названием "imdb top 250" и стартовой страницей http://www.imdb.com/chart/top. После создания мы попадем в Редактор, в режим браузера, в котором будет загружена наша стартовая страница. Теперь мы можем создавать правила парсинга.

Нам необходимо извлечь все ссылки на фильмы из таблицы топа. Для этого нажимаем кнопку " Ссылка" на панели инструментов вверху и щелкаем по ссылке в первой строчке таблицы. Должна выделиться ссылка красной пунктирной линией. В появившемся окне введем имя нового правила, например link и нажмем Enter. Первое правило создано.

Аналогично создадим второе правило с именем link2 для ссылки на второй строке таблицы.

созданные правила

Далее отметим галочкой оба правила и нажмем кнопку "Объединить". Должны выделиться все ссылки на страницы с фильмами. Мы можем посмотреть какие данные собираются нашим правилом, нажав "Собранные данные". Также не забываем сохраняться.

Аналогично можно собрать данные и из других столбцов. Но мы сделаем по другому и будем загружать собранные ссылки. Для этого у правила в таблице в нижней части страницы в меню "Действия" необходимо выбрать "Загрузить". Будет загружена страница, на которую указывает первая ссылка в списке, т.е. страница с фильмом.

нажимаем загрузить

На странице с фильмом создадим правила типа "Текст" для названия, года, рейтинга и описания фильма. Это будут одиночные правила. Чтобы выделить, например, всех актеров, необходимо сначала выделить одного актера, затем второго, объединить эти два правила и у получившегося правила изменить группу на group2 или actors (Действия -> Группировка). Тогда выделятся все актеры. В окне "Собранные данные" можно увидеть, что будет две вкладки, по одной для каждой группы. Если бы группа была одна, то парсилась бы только одна строка, т.к. в правилах для названия, года и других по одному элементу. Аналогично можно выделить жанры в отдельную группу.

Также мы можем выделить позицию фильма в топе, т.е. надпись "Top 250 #". Чтобы оставить только цифру, можно выделить третье слово. Для этого у правила переходим в Действия -> Параметры, ставим галочку у "Выделить слово" и в поля ввода вводим 3 (выделять с третьего по третий). В собранных данных будет видно, что собирается только номер.

собранные данные

Сохранять собранные данные мы собираемся в CSV, т.е. все данные о фильме должны записаться в одну строку через запятую. Однако в правиле для актеров несколько элементов. Чтобы объединить спарсенные данные в одну строку, необходимо зайти в Действия -> Параметры у правила и отметить галочку "Соединить строки в одну", а в поле ввода задать запятую с пробелом, т.е. строку, которая будет вставляться между элементами. Таким образом собранные данные у всех правил будут состоять из одного элемента.

Теперь нажимаем "Правило экспорта", далее "Добавить", в появившемся окне необходимо выбрать профиль csv, имя файла зададим "imdb_top_250". Теперь необходимо в раздел параметры добавить все сохраняемые правила со страницы. Нажимаем "Добавить" и выбираем правило. Потом можно установить порядок следования сохраняемых данных. Таким образом будет установлено правило сохранения для всех страниц фильмов, т.к. для каждой страницы фильма будут выполняться одни и те же правила.

правило экспорта для страницы

По умолчанию данные в csv отделяются запятыми, можно задать другой разделитель в настройках профилей экспорта (Вкладка "Экспорт").

Также можно посмотреть другую страницу с теми же правилами. Для этого надо перейти снова на страницу со списком фильмов, нажав или зайдя в "Загружаемые страницы" и выбрав необходимую страницу. Затем в верхнем меню выбрать " Загрузить ссылку" и кликнуть на любой из выделенных ссылок.

Парсер готов. Теперь можно генерировать программу. Для этого переходим на страницу генерации, нажав ссылку "Генерировать" в Редакторе справа, выбираем "PHP парсер" и нажимаем зеленую кнопку "Генерировать".