Ленты: Канал данных в формате RSS/RDF

Один из форматов каналов данных, которые можно подключить к Лентам Новостей, это RSS/RDF (в дальнейшем просто RSS).

RSS представляет собой один из двух самых распространённых форматов XML-документов для публикации новостей, обновлений, блогов.

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

Подробнее об истории RSS и его разновидностях можно прочитать в отдельной статье.

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

Для того чтобы ваш RSS-канал был правильно воспринят системой, он должен иметь следующую структуру (на примере канала "Новые рассылки Subscribe.Ru" в формате RSS 2.0):

<?xml version="1.0" encoding="koi8-r" ?>

<rss version="2.0">

<channel>

 <title>Новые рассылки Subscribe.Ru</title>
 <description>Список новых рассылок Subscribe.Ru отрытых за последнее время</description>
 <link>https://subscribe.ru/</link>
 <image>
  <url>https://subscribe.ru/skin/logo.rss.png</url>
 </image>

  <pubDate>Fri, 14 Aug 2006 15:37:56 +0400</pubDate>

 <item>
  <title>Новости Subscribe.Ru</title>
  <link>https://subscribe.ru/catalog/news.citycat</link>
  <guid isPermalink="true">https://subscribe.ru/catalog/news.citycat</guid>
  <description>Из этой рассылки вы узнаете о других новых рассылках отрытых на Subscribe.Ru</description>
  <pubDate>Fri, 11 Aug 2006 15:37:56 +0400</pubDate>
  <author>ask@subscribe.ru (Информационный канал Subscribe.Ru)</author>
  <category domain="theme">Новости</category>
 </item>

 <item>
  <title>Программа телевидения на неделю</title>
  <link>https://subscribe.ru/catalog/tv.all</link>
  <guid isPermalink="true">https://subscribe.ru/catalog/tv.all;</guid>
  <description>Еженедельно публикуется программа передачь всех каналов на следующую неделю</description>
  <pubDate>Fri, 12 Aug 2006 15:37:56 +0400</pubDate>
  <author>ask@subscribe.ru (Информационный канал Subscribe.Ru)</author>
  <category domain="theme">Телевидение</category>
 </item>

 <item>
  <title>Погода в Санкт-Петербурге</title>
  <link>https://subscribe.ru/catalog/wea.Spb</link>
 <guid>0890123hnbva492-234arml234</guid>
  <description>Каждый день прогноз погоды на завтра</description>
  <pubDate>Fri, 13 Aug 2006 15:37:56 +0400</pubDate>
  <author>ask@subscribe.ru (Информационный канал Subscribe.Ru)</author>
  <category domain="theme">Погода</category>
 </item>

</channel>

</rss>

Красным выделены обязательные для правильного оформления XML-документа элементы.

Зелёным выделены элементы, формирующие содержимое каждой новости. Несмотря на то, что достаточно только одного из этих трёх элементов, настоятельно рекомендуем иметь как минимум ссылку (link) и заголовок (title) новости. А лучше всего (для подписчиков), если будет присутствовать и краткое содержание (description).

Коричневым выделены необязательные, но настоятельно рекомендуемые элементы описания канала. Ваш канал будет выглядеть у подписчиков гораздо аккуратнее, если у него будет название (title), описание (description), ссылка на сайт (link) и логотип специального небольшого размера (image).

Еще один настоятельно рекомендуемый параметр guid позволит избежать дублей новостей, если вам потребовалось скорректировать (например опечатка) и заново опубликовать новость. Он может содержать что угодно - главное, что бы у каждой новости этот паараметр был свой уникальный. В примере даны два случая - просто уникальный номер (новость 3) и адрес новости (новости 1 и 2). Если у каждой вашей новости есть свой уникальный веб-адрес, то используйте его как значение guid.

Синим выделены рекомендуемые, но необязательные элементы новости. Например, если Вы не понимаете, как устроена дата публикации (pubDate), то её лучше не указывать вообще, чем указать неверно.

А рекомендуемый элемент category позволит организовать для ваших подписчиков Выборочную Подписку.

Ещё раз подчеркнём, что это очень не полный и ограниченный пример. Но этого достаточно, чтобы мы понимали Ваш канал данных. Если у Вашего сайта его ещё нет, то обязательно изучите полное описание формата RSS 2.0 прежде чем создавать скрипты для построения собственного канала. Если Вы будете использовать наш пример как образец, то, как минимум, не забудьте заменить в первой строке koi8-r на код той кодировки, в которой у вас будет отдаваться канал (лучший вариант - utf-8).

Для разбирающихся в деталях: тег <yandex:full-text> поддерживается, но при наличии не пустого тега <description> не учитывается. Тег <description> имеет преимущество.