Главный Каталог Статей РФ
87238 авторов, размещено 47366 статей, сейчас на сайте пользователей: 349 Статистика
Аватар vitaliyboch

RSS каналы

Категория:  Компьютеры и Интернет  | Автор:  vitaliyboch | Опубликовано: 11.01.2010
Определение

RSS - это один из форматов, используемых для передачи информации по Сети, который расшифровывается "Really Simple Syndication" или "Очень Простое Синдицирование (распространение по подписке)".

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

На сайтах новостные ленты обычно обозначаются оранжевым значком с тремя белыми дугами. Значек RSS

Структура RSS-файла Обязательная структура RSS

RSS-файл представляет из себя документ в формате XML, которые соответствует спецификации XML 1.0, опубликованной на веб-сайте консорциума WWW (W3C).

Итак обязательная структура RSS выглядит следующем образом:

<?xml version="1.0" encoding="UTF-8" ?> <rss version="2.0"> <channel> <title>Название RSS-канала</title> <link>http://ссылка на основной сайт</link> <description>Краткое описание RSS-канала</description> <item> <title>Название новости</title> <link>http://ссылка на полную версию новости</link> <description>Краткая версия новости.</description> </item> </channel> </rss>

Тег <xml> указывает в какой версии XML и в какой кодировке написан документ. Далее следует тег <rss>, в котором указывается версия RSS-спецификации (существует несколько версий RSS-спецификаций от разных разработчиков, поэтому агрегатору RSS-канала нужно указать в каком формате изложен документ, в этой статье будет разобрана только версия 2.0). Тег <channel> содержит в себе информацию о самом канале: здесь указываются название канала, ссылка на сайт, откуда загружен канал, описание канала и список новостей, заключенных в теги <item>.

Элементы тега <channel>

Как уже было сказано выше, тег <channel> является обязательным для RSS-файла. Этот тег является дочерним по отношению к основному тегу канала <rss> и может содерджать следующие элементы:

  • <title> - название RSS-канала.
  • <link> - ссылка на основной сайт (ссылка обязательно должна начинаться с http://, https://, ftp:// или mailto:).
  • <description> - краткое описание RSS-канала.
  • <language> - язык, на котором написан канал (для обозначения языков используюся аббревиатуры, определенные W3C).
  • <copyright> - информация об авторском праве на канал.
  • <managingEditor> - адрес электронной почты редактора содержимого канала.
  • <webMaster> - адрес электронной почты веб-мастера канала.
  • <pubDate> - дата публикации содержимого канала (дата и время должны соответствовать спецификации RFC 822).
  • <lastBuildDate> - дата последнего изменения содержимого канала (дата и время должны соответствовать спецификации RFC 822).
  • <category> - категория, к которой относится канал.
  • <generator> - программа, в которой сгенерирован файл канала.
  • <docs> - ссылка на документацию об использованном формате канала.
  • <cloud> - ссылка на веб-сервис, поддерживающий интерфейс rssCloud.
  • <ttl> - время жизни в минутах, на которые канал может кешироваться.
  • <image> - изображение GIF, JPEG или PNG, которое может отображаться с каналом (тег должен содердать атрибуты <url>, в котором указывается ссылка на картинку, <title>, в котором указывается пояснение к картинке, и <link>, который содержит ссылку для перехода по картинке, так же могут быть заданы параметры <width> и <height>).
  • <rating> - рейтинг канала.
  • <textInput> - поле текстового ввода, которое может отображаться с каналом.
  • <skipHours> - информация агрегаторам, в какие часы можно не обрабатывать канал.
  • <skipDays> - информация агрегаторам, в какие дни можно не обрабатывать канал.
Элементы тега <item>

Тег <item> является дочерним по отношению к тегу <channel>. Канал может содержать любое количество статей, то есть любое количество элементов <item>. Обязательные элементы тега указаны в приведенном выше примере, а ниже перечислены все возможные параметры, которые можно использовать для новостей:

  • <title> - название новости.
  • <link> - ссылка на полную версию новости.
  • <description> - краткая версия новости.
  • <author> - адрес электронной почты автора сообщения.
  • <category> - категория сообщения.
  • <comments> - ссылка на страницу комментариев.
  • <enclosure> - медиа-объект, прикрепленный к сообщению (тег должен содердать атрибуты <url>, в котором указывается ссылка на прикрепленный файл, <length>, в котором указывается размер вложения в байтах, и <type>, который описывает тип вложения).
  • <guid> - уникальный идентификатор сообщения.
  • <pubDate> - дата публикации сообщения (дата и время должны соответствовать спецификации RFC822, если дата относится к будущему, то агрегатор не показывает сообщение, пока не наступит указанное время).
  • <source> - RSS-канал, из которого получено сообщение (тег должен содержать атрибут <url>, в котором указывается ссылка на RSS-источник.)
Автоматическая генерация RSS-канала для сайта Размещение канала на сайте

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

Блок новостей на главной странице

Например, на моем сайте новости располагаются на главной странице под списком разделов.

Блок новостей представляет из себя динамический элемент, который считывает из базы данных новостей последнюю публикацию и выводит ее на страницу. Блок содержит следующие элементы:

  • значек RSS, который ссылается на ленту новостей;
  • дату последней публикации;
  • текст последней публикации;
  • ссылку на статью, связанную с публикацией;

Если обратить внимание на значек RSS, то можно увидеть, что он связан с лентой новостей - страницей rss.aspx. Эта страница и является полноценным каналом новостей, который может использоваться агрегаторами для обработки публикаций.

Итак, чтобы создать RSS-канал на ASP.NET нам потребуется:

  • база данных, в которой будут содержаться новости;
  • шаблон страницы на ASP.NET;
  • код, генерирующий содержимое страницы ASP.NET;
База данных новостей

Для того, чтобы хранить новости, нам потребуется создать базу данных. Создать базу данных можно на любой платформе, я же буду использовать самый простой вариант - файл mdb.

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

Итак, таблица новостей должна содержать следующие поля:

  • news_id - идентификатор публикации (числовой);
  • news_date - дата публикации (дата и время);
  • news_title - заголовок новости (строковый);
  • news_description - содержание публикации (тектовый);
  • news_link - ссылка на основную статью (строковый).

При необходимости таблица может быть дополнена другими полями.

Шаблон страницы канала новостей

Файл канала новостей будет иметь имя rss.aspx и состоять только из одной строки:

<%@ Page Language="VB" AutoEventWireup="false" CodeFile="rss.aspx.vb" Inherits="rssClass" %> Код, генерирующий содержимое канала новостей

Код, который генерирует, что будет содержать лента новостей, располагается в файле rss.aspx.vb и представляет из себя считыватель базы данных с генератором XML структуры.

Partial Class rssClass Inherits System.Web.UI.Page ' Подключение библиотек Private mBaseClass As New MyLibrary.BaseClass Private mDatabaseClass As New MyLibrary.DatabaseClass Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) _ Handles Me.Load Dim mRSSContent As New StringBuilder Dim mTempTable As New Data.DataTable("RSSContent") mTempTable = mDatabaseClass.GetTable_SQL("Microsoft Access Driver (*.mdb)", _ Nothing, Request.PhysicalApplicationPath & "App_Data\dynamic.mdb", _ Nothing, Nothing, _ "SELECT * FROM news ORDER BY news_id DESC") mRSSContent.AppendLine("<?xml version=""1.0"" encoding=""UTF-8"" ?>") mRSSContent.AppendLine("<rss version=""2.0"">") mRSSContent.AppendLine("<channel>") mRSSContent.AppendLine("<title>Новости сайта it-bor.qsh.eu</title>") mRSSContent.AppendLine("<link>http://www.sysengineering.ru</link>") mRSSContent.AppendLine("<description>Новости сайта it-bor.qsh.eu</description>") If Not (mTempTable Is Nothing) Then For iCounter As Integer = 0 To mTempTable.Rows.Count - 1 mRSSContent.AppendLine("<item>") mRSSContent.AppendLine("<title>" & _ mTempTable.Rows(iCounter).Item("news_title").ToString & "</title>") mRSSContent.AppendLine("<link>" & _ mTempTable.Rows(iCounter).Item("news_link").ToString & "</link>") mRSSContent.AppendLine("<description>" & _ mTempTable.Rows(iCounter).Item("news_description").ToString & _ "</description>") mRSSContent.AppendLine("<pubDate>" & _ Format(CDate(mTempTable.Rows(iCounter).Item("news_date").ToString), _ "r") & "</pubDate>") mRSSContent.AppendLine("</item>") Next End If mRSSContent.AppendLine("</channel>") mRSSContent.AppendLine("</rss>") Response.Write(mRSSContent.ToString) End Sub End Class

Разберем более подробно, что делает данная программа:

  1. При загрузке страницы вызывается процедура составления канала.
  2. Вызывается внешняя процедура чтения базы данных новостей.
  3. Составляется начальная структура канала (обязательные блоки).
  4. Для каждой новости из базы данных вставляется тег <item> и заполняются его атрибуты.
  5. Сгенерированная структура и содержание канала вставляется в шаблон страницы в виде ответа на запрос браузера (агрегатора).
Примечание. Для считывания базы данных используется внешняя библиотека, которая не входит в содержание данной статьи. Заключение

В заключение назовем те преимущества, которыми обладают RSS-каналы:

  • RSS – это почтальон, ежедневно доставляющий свежую прессу в ваш почтовый ящик.
  • Минимум трафика - загружаются только заголовки и дайджест публикации.
  • Экономия времени - не нужно посещать сайт, чтобы узнать об обновлениях страницы.
  • Простота использования - достаточно добавить RSS-канал в веб-браузер или специальную программу, и вы уже получаете новости.

Источник: RSS каналы Автор: Виталий Бочкарев - www.sysengineering.ru

Комментарии
К этой статье пока нет комментариев. Станьте первым! У нас гости не могут комментировать статьи. Пожалуйста авторизуйтесь или зарегистрируйтесь, чтобы прокомментировать.
Интересные статьи по теме
Аватар shuraarh
"Чистая комната" или ламинарный бокс? Что больше подойдет для органиации ремонта жестких дисков? Когда жесткий диск получает физическое повреждение, процесс восстановления данных и ремонт диска требует высокую степень внимательности и опыта. Процесс восстановления включает в себя удаление диска и...
Категория: Компьютеры и Интернет | Автор: shuraarh | Добавлено: 20.08.2013
Аватар Евченко Тарас
Плюсы и минусы виртуального общения Статья посвящена проблеме виртуального общения, ставшей столь актуальной в последние годы....
Категория: Компьютеры и Интернет | Автор: Евченко Тарас | Добавлено: 14.12.2009
Аватар itsfedorov
Обзор рабочих пространств в AutoCAD В статье рассматриваются все рабочие пространства в AutoCAD....
Категория: Компьютеры и Интернет | Автор: itsfedorov | Добавлено: 06.10.2010
Аватар illureal
Как выбрать б.у. ноутбук Если рассматривать рынок б.у. ноутбуков, то экономия выходит вполне значительная. Ноутбук – изначально не дешевая вещь. Бывший в употреблении ноутбук стоит не более 60% от стоимости аналогичного новог...
Категория: Компьютеры и Интернет | Автор: illureal | Добавлено: 20.04.2010
Аватар 448
Редактирование WordPress шаблонов. В этой статье не будет написано как из бесплатной убогой темы сделать супер крутую, да и написать такую статью не возможно. Здесь я опишу как можно легко сделать небольшой «косметический» ремонт шабло...
Категория: Компьютеры и Интернет | Автор: 448 | Добавлено: 08.07.2009
Свежие комментарии
Ну, вот это я понимаю, настоящая инструкция для тех, кто хочет не просто «привет, как дела», а чтобы дамы сами в личку ломились! Как говорится, техник...

Читать >>

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

Читать >>

Полностью поддерживаю подход, описанный в статье! Рисование — не просто творческое занятие, а ключевой инструмент для развития ребёнка. Как детский пс...

Читать >>

Интересная подборка ошибок, но не могу не высказать скепсис по поводу части рекомендаций. Например, о зарядке только до 80% — это логично с техническо...

Читать >>

Работал соцработником пару лет, и вот что не написали: это не только помощь людям, но и куча бумажек, отчётов и согласований. Бывает, половина времени...

Читать >>

Лучшие авторы
Аватар olesyastrastnova
Олеся Страстнова
Свободный писатель, пишу о люд...

Читать

Аватар plus-stroy
Компания Плюс-Строй занимается строительство кирпи...

Читать

Напишите нам