RSS-лента для любой веб-страницы

Вы здесь

Просмотров:
7

Технология RSS становится все популярнее как у пользователей Интернета, так и у создателей сайтов. И это неудивительно - чтение новостей в RSS-формате способно сэкономить как трафик, так и время. Но далеко не всегда RSS-лента есть там, где она нужна. Предположим, что нам очень хотелось бы получать новости в RSS-формате с некоего сайта. Почему именно в RSS? Да потому, что таким образом мы читаем новости с двух или трех десятков сайтов и менять схему не хотелось бы. Но вот беда - тот самый сайт не имеет экспорта новостей в RSS (к слову сказать - не такая уж огромная редкость). Помочь нам могут интернет-сервисы, делающие из любой HTML-страницы ленту RSS. Рассмотрим один из таких сервисов - Feed43.com.

Feed43 работает по простому принципу - сначала ищет на странице блоки по шаблону, определяемому пользователем, затем из этих блоков строит RSS-ленту. Попробуем разобраться детально, как это делается.

На Feed43 можно регистрироваться, а можно и работать без регистрации - что кому нравится. Стать зарегистрированным пользователем имеет смысл в том случае, если нужно создать несколько лент (в этом случае доступ к ним удобен со страницы My feeds). Еще зарегистрированный пользователь имеет возможность создавать и использовать платные ленты - они имеют такие преимущества перед бесплатными, как меньший период обновления, большие допустимый размер исходной страницы и число новостей в ленте и отсутствие в конце текста каждой новости строчки Delivered by Feed43 service, ставящейся в бесплатных лентах. Итак, регистрируемся и входим. Щелкаем по ссылке Create new feed и приступаем к созданию ленты.

Шаг первый. Указываем имя страницы и кодировку. Имя лучше указать как mydomain.ru/page.html, даже если зайти на эту страницу можно, набрав просто mydomain.ru, а кодировку, если содержимое страницы не на английском языке, указывать просто обязательно - иначе в ленте получим всякую ерунду. И получаем исходный код страницы.

Шаг второй. Указываем, что и где будем искать. Делается это на основе шаблонов, и некоторые их элементы заслуживают отдельного внимания:

  • {*} - воспринимается Feed43 как "что угодно";
  • {%} - воспринимается как блок, из которого строится лента, например заголовок или текст новости.

Для начала в поле Global Search Pattern указываем диапазон, в котором будут искаться новости. Можно указать просто {%} - тогда просматриваться будет вся страница, а можно, например, <body>{%}</body> - в этом случае поиск будет ограничен границами действия тега body.

Затем надо указать, какой фрагмент HTML-кода считать новостью. Разберем простой пример. Предположим, что заголовок новости у нас оформляется тегом <h1>, а текст новости - <div class="content">. Тогда шаблон новости в поле Item (repeatable) Search Pattern должен выглядеть следующим образом:

  • <h1>{%}</h1>{*}<div class="content">{%}</div>

Нажимаем кнопку Extract и смотрим в окне Clipped Data - что найдено на странице.

Нужно отметить, что заголовок каждой новости у нас определен как {%1}, а текст - как {%2}.

Шаг третий. Из найденных блоков собираем ленту. Заполняем поля Feed Title, Feed Link и Feed Description - это название, ссылка и описание ленты соответственно. Примечание здесь одно - согласно справке Feed43 в поле Feed Link надо указывать ссылку на исходную страницу, а не на саму ленту.

В поле Item Title Template вводим {%1} (строку заголовка вставляем без изменений), в Item Link Template - ссылку на исходную страницу (поскольку сама новость собственной ссылки не имеет), в Item Content Template - {%2} (текст новости вставляем также без изменений). В тексте новости (и только в нем) можно использовать HTML-теги, но стоит убедиться, что они будут нормально пониматься программами чтения RSS-ленты. Нажимаем Preview - и видим готовую ленту:

Под окном просмотра дается ссылка на ленту. Копируем ее, вставляем в RSS-агрегатор и читаем новости в привычном виде.

В заключение стоит отметить, что Feed43, конечно же, не единственный такой сервис. Можно найти, например, и FeedYes, и FeedFire, но они уже не дают возможность какой-либо настройки в бесплатном аккаунте - можно просто указать страницу, с которой брать новости. Если повезет - удастся сделать ленту на основе этой страницы, если нет - остается либо платить, чтобы иметь возможность детально настраивать процесс, либо искать другой сервис. Такой, как Feed43.

Автор: Алекс Звягин

www.izcity.com