• 30Mar

    В данной статье мы постарались уместить полный цикл настройки граббера под импорт новостей с определённого сайта.

    Итак, допустим мы определились с тем, что хотим грабить с сайта http://warezed.ru/

    Что мы должны сделать в самом начале?

    В начале мы должны перейти по одному из адресов полных статей, допустим: http://warezed.ru/news/12604-V_Katare_otkrylsya_21_iy_sammit_LAG.html

    И заглянуть в HTML код статьи.

    В категории источников системы импорта новостей FDE Grabber указываются настройки, согласно которым будет обрабатываться получаемый контент (содержимое).

    Пожалуй самой значимой из настроек категории является настройка шаблона для парсинга.

    Согласно данному шаблону будет после получения содержимого статьи (текста) производиться парсинг и извлечение полезного контента статьи.

    В парсере FDE Grabber имеется возможность указать шаблон для двумя способами:

    1. с помощью регулярного выражения (требуется знание регулярных выражений)
    2. указать простой шаблон без регулярных выражений (обычно это наиболее оптимальный вариант указания шаблона. Поэтому рассмотрим только его)

    допустим, что мы заглянули в HTML код каждой страницы со статьёй и увидели некоторую закономерность, а именно, шаблонность:

    1-я статья:

    http://warezed.ru/show_buisness/9276.html

    код:

    ...<div class="w_content">
    <div id='news-id-9276'>В IX международном фестивале балета "Мариинский" примут участие ...
    </div>
    </div>
    </td></tr><tr><td>&nbsp;</td></tr></table>...

    10-я статья:

    http://warezed.ru/economic/9275.html

    код:

    ...<div class="w_content">
    <div id='news-id-9275'>Министры считают необходимой скорейшую активизацию новой модели...
    </div>
    </div>
    </td></tr><tr><td>&nbsp;</td></tr></table>...

    Исходя из приведённых данных можно заметить шаблонную структуру:

    <div class="w_content">
    <div id='news-id-{null}'>{description}</div>
    </div></td></tr><tr><td>&nbsp;</td></tr></table>

    Где {null} – это произвольно изменяющееся ненужное нам содержимое, а {description} – это как раз нужный нам контент.  Собственно, это и есть простой шаблон для категории граббера

    Проверить правильность настройки шаблона категории можно в разделе “Тест категории”. Для этого требуется просто выбрать из списка нужную категорию для проведения теста, и указать адрес статьи, на которой будет проводиться тест, например http://warezed.ru/show_buisness/9276.html

    Всё, категорию мы добавили, что дальше?

    Когда мы добавили категорию с шаблоном для парсинга полезного контента – мы можем переходить к добавлению источника.

    Источники могут быть трёх типов:

    1. RSS источники, в данном случае списки статей будут импортироваться из RSS фидов, которые вещает сайт, с которого планируется получать контент
    2. Atom источники, в данном случае списки статей будут импортироваться из Atom фидов, которые вещает сайт, с которого планируется получать контент
    3. HTML источники, в данном случае списки статей будут импортироваться из обычных HTML страниц, на которых имеется список новостей

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

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

    Для того, чтобы не было проблем с кодировкой полученных статей, указывайте её явно. Для того, чтобы наша система правильно переводила одну кодировку в другую, необходимо, чтобы на вашем сервере была доступна библиотека iconv.
    Список кодировок, для указания явно можно пополнять по своему усмотрению в файле ROOT/inc/charsets_list.php
    Для того, чтобы просмотреть список доступных кодировок в UNIX доступна команда iconv -l
    Библиотека iconv может быть доступна как системная и/или как модуль для PHP.
    Если перекодирование работает при ручном тесте, но не работает из CRON, то кроновские скрипты граббера придётся запускать через wget

    Для того, чтобы граббер логинился на сайт, и мог, например, читать скрытый текст, можно указать POST параметры для логина.
    Пример: http://www.some-site.ru/index.php?username=ineedwarez&password=ineedwarez
    Здесь параметры делятся на 2 части:

    1. http://www.some-site.ru/index.php – адрес страницы, на которой будет производиться логин на сайт
    2. username=ineedwarez&password=ineedwarez – непосредственно POST параметры

    Рассмотрим RSS/Atom источник

    Как можно импортировать контент с RSS или Atom источников? Каков прицип работы?

    В двух словах имеем вот что:

    имеется постоянно обновляющийся список новостей (feed, фид) в котором, обычно есть следующая информация по каждой статье (обычно в фиде представлены 10-20 последних статей):

    1. адрес статьи
    2. название статьи
    3. краткое описание
    4. дата

    этого нам достаточно, чтобы добавить задание для граббинга с подобного RSS/Atom источника.

    При добавлении источника нужно указать адрес RSS/Atom фида и связанную с ним категорию CMS (ранее мы добавили категорию, теперь при добавлении нашего источника просто выбираем её из списка), куда будут помещаться полученные новости, а также категорию граббера, согласно которой будет происходить парсинг полного содержимого статей по заданному шаблону.

    Проверить, что получает граббер с определённого RSS/Atom источника можно в разделе “Пинг RSS/Atom источника”

    HTML список новостей (HTML источник)

    Только что мы с вами рассмотрели импорт новостей с RSS/Atom источников. Пришло время познакомиться с граббингом с HTML источников.

    Но перед этим нам нужно выяснить, что же такое HTML источник.

    Для граббера FDE Grabber источник – это просто обновляющийся список новостей, в котором можно выявить следующие данные по каждой статье:

    1. адрес конечной статьи
    2. название
    3. краткое описание
    4. возможно, некоторые другие дополнительные данные

    Очевидно, что HTML источник – это тот же RSS или Atom фид, только с нестандартным шаблоном парсинга. Поэтому, при использовании HTML источника нам придётся указывать шаблон для его парсинга.

    HTML шаблон для HTML источника выявляется совершенно аналогично описанному способу выявления шаблона для категории, за тем лишь исключением, что теперь у нас имеется больше переменных:

    {date} – дата; {name} – название; {link} – адрес к полному описанию статьи; {description} – краткое описание; {category} – категория публикации; {null} – ненужный контент;

    Проверить правильность указания шаблона для парсинга HTML источника можно в разделе “Тест HTML источника”
    Хорошо, добавили источник, а дальше то что?

    Дальше запускаем процесс граббинга :-)

    Posted by admin @ 2:38 pm

    Метки: , , , , , , ,

Выскажитесь

Имейте ввиду: Комментарии проходят модерацию. Спам-комментарии никогда здесь не появятся.