Яндекс для всех - Абрамзон М. Г.
Первые две строки (листинг 3.1) — служебные. В одной описывается стандарт XML, во второй — стандарт RSS, используемые для создания фида. Кроме того, в описании версии RSS указаны источники пространства имен, применяемые в данном стандарте. Больше в фиде никакой служебной информации нет, все остальное относится непосредственно к рассылке.
В стандарте 2.0 (именно этот формат используется на Яндексе) вся рассылка обрамляется тегом <channel>, а сами новости вложены внутрь этого тега. (В версии 1.0 новости не входят в состав тега <channel>.)
Листинг 3.2. Основная часть фида по версии 2.0:_|
<channel>
<title>Яндекс. Новости: MHTepHeT</title>
<link>http://news.yandex.ru/Russia/internet.html</link>
<description>Первая в России служба автоматической обработки и систематизации новостей. Сообщения ведущих российских и мировых СМИ. Обновление в режиме реального времени 24 часа в сутки.</description>
В описании фида (рассылки) — три обязательных параметра (листинг 3.2):
□ title — название канала либо название ресурса. По нему будут ссылаться на ресурс;
□ link — ссылка на источник, соответствующий данному каналу;
□ description — краткое описание канала.
Кроме обязательных, в состав описания могут входить и необязательные элементы. К ним относятся:
□ Language — язык, на котором вы пишете свои новости;
□ copyright — авторские права, ваши, но — на английском;
□ managingEditor — электронный адрес издателя;
□ webMaster — электронный адрес веб-мастера;
□ pubDate — дата публикации. Требование к формату описано в RFC 822;
□ generator — может использоваться, если канал формируется с помощью какой-либо программ;
□ image — описывает картинку, которая может показываться агрегаторами для данного канала. Формат изображения — GIF, JPEG или PNG. В свою очередь состоит также из нескольких тегов, описывающих ссылку на картинку, ее описание и некоторые иные параметры;
□ skipHours и skipDays предназначены для агрегаторов. В этих тегах указывается, в какое время и какие дни "появление" агрегаторов нежелательно.
Есть еще ряд тегов, которые могут использоваться в описании заголовка канала, но они применяются довольно редко, и поэтому о них лучше прочитать в описании стандарта.
Следующий блок канала — сами сообщения. Каждое сообщение обрамляется элементом item. Все остальные элементы, относящиеся к новости, содержатся внутри него. Элементов item в вашем фиде будет столько, сколько новостей вы будете в нем размещать. Все элементы, входящие в item, являются необязательными, тем не менее, желательно, чтобы присутствовал хотя бы один элемент title или description. Итак, какие элементы могут включаться в описание новости?
Как только что говорилось, в состав описания новости могут включаться элементы:
□ title — заголовок записи;
□ link — ссылка на запись;
□ Description — аннотация либо полная публикация;
□ category — описывает категорию, к которой можно отнести новость;
□ pubDate — дата публикации документа. Может содержать будущую дату, по отношению к текущей. В этом случае агрегаторы должны такую новость пропускать.
Есть еще ряд элементов, которые могут входить в описание новости, но на них мы останавливаться не будем. Зато посмотрим, как все, что было описано ранее, выглядит в реальном фиде, точнее, его небольшой части (листинг 3.3).
Листинг 3.3. Пример RSS-фида Яндекс. Новостей_|
<?xml version="1.0" encoding="windows-1251"?>
<rss xmlns: yandex="http://news.yandex.ru" version="2.0">
<channel>
<title>Яндекс. Новости: Интернет</title>
<link>http://news.yandex.ru/Russia/internet.html</link>
<description>Первая в России служба автоматической обработки и систематизации новостей. Сообщения ведущих российских и мировых СМИ. Обновление в режиме реального времени 24 часа в сутки.</description>
<image>
<url>http://company.yandex.ru/i/50x23.gif</url>
<link>http://news.yandex.ru</link>
<title>Яндекс. Новости</title>
</image>
<lastBuildDate>Tue, 20 Feb 2007 23:25:00 +0300</lastBuildDate>
<item>
<title>Компенсация за порно — $5 млн</title>
<link>http://news.yandex.ru/yandsearch?cl4url=bybanner.com/article/4181.ht
ml&country=Russia</link>
<description>Именно столько требует в суде от компании IBM бывший сотрудник, уволенный в 2003 году за посещение порночатов.<br>58-летний Джеймс Пьяченца (James Pacenza) из города Монтгомери утверждает, что увлечение порно помогало ему справиться с тяжелым стрессом, вызванным гибелью на его глазах… <br></description>
<pubDate>Tue, 20 Feb 2007 17:30:17 +0300</pubDate>
<guid>http://news.yandex.ru/yandsearch?cl4url=bybanner.com/article/4181.ht
ml&country=Russia</guid>
</item>
</channel>
</rss>
Как видите, ничего особенно сложного в этом нет. Если вы делаете RSS-файл вручную, вам остается добавлять в него очередные новости, удаляя, по мере необходимости, старые. Добавлять новости лучше в начало файла, тогда это действительно будет похоже на ленту новостей, в которой свежие новости постепенно вытесняют старые.
Но новости, а тем более — новостные каналы, пишутся в первую очередь для посетителей (и почитателей) вашего проекта. Следовательно, нужно дать им возможность подписаться на ваши новости, для чего на странице новостей (хотя можно и на другой — главное, чтобы было заметно) нужно разместить специальные кнопки, но могут быть и прямые ссылки на фиды. При этом в качестве протокола чаще всего используется специально разработанный протокол — FEED.
Почему не используется обычный HTTP-протокол? На это есть две причины: протокол HTTP не может определять действия, а также не умеет запускать через ваш браузер программу-агрегатор для осуществления подписки. Поэтому протокол FEDD вызывается поверх иных сетевых протоколов — HTTP, FTP и ссылок на локальные файлы.
Примеры записи протокола FEED:
feed://http://example.org/rss.xml
feed: http://example.org/rss.xml
feed: example.org/rss.xml
feed://ftp://user: [email protected]/path/index.xml
feed://file://\servershareindex.xml
Но можно не ограничиться размещением кнопки или меню на своем сайте. Вы можете включить свою рассылку в список, формируемый некоторыми специальными проектами — службами синдикации. Одной из таких наиболее известных в России служб является проект Яндекс. Лента.
3.3.3. Яндекс. Лента как RSS-синдикатор
Новости, которые публикуются на Яндексе, поставляются сайтами в RSS-формате. Можно пройти на сайт любого информационного партнера Яндекса и найти на нем RSS-ленту, которую он предлагает для экспорта. Например, издание "Главные новости Ульяновска" (http://mosaica.ru) предлагает свою ленту на странице http://www.mosaica.ru/feed/. Эта лента экспортируется и Яндексом, и новости, публикуемые в ней, попадают в общую ленту Яндекс. Новостей. Аналогичным образом поступают и другие поставщики новостей.
Полученные новости "достаются" из RSS-файла, сортируются по различным тематическим разделам, добавляются в разделы региональные, и каждая становится частью нового фида соответствующей тематики. Для удобства сортировки поставщики информации указывают в описании новостей раздел, наиболее близкий по тематике какому-либо разделу Яндекс. Новостей.
И вот какое происходит преобразование (листинги 3.4 и 3.5).
Листинг 3.4. Новость в RSS-фиде Ульяновского издания
<item>
<link>http://mosaica.ru/news/society/8574/</link>
<title^ Ульяновской области серьезно взялись за пожарную безопасность территорий</title>
<description>21 февраля на базе Ульяновского государственного университета под председательством губернатора Сергея Морозова состоялось совещание, посвященное подведению итогов деятельности областной подсистемы предупреждения и ликвидации чрезвычайных ситуаций в регионе за 2006 год. </description>
<pubDate>Wed, 21 Feb 2007 14:49:00 +0300</pubDate>
<guid>http://mosaica.ru/news/society/8574/</guid>
</item>
Откройте для себя мир чтения на siteknig.com - месте, где каждая книга оживает прямо в браузере. Здесь вас уже ждёт произведение Яндекс для всех - Абрамзон М. Г., относящееся к жанру Интернет. Никаких регистраций, никаких преград - только вы и история, доступная в полном формате. Наш литературный портал создан для тех, кто любит комфорт: хотите читать с телефона - пожалуйста; предпочитаете ноутбук - идеально! Все книги открываются моментально и представлены полностью, без сокращений и скрытых страниц. Каталог жанров поможет вам быстро найти что-то по настроению: увлекательный роман, динамичное фэнтези, глубокую классику или лёгкое чтение перед сном. Мы ежедневно расширяем библиотеку, добавляя новые произведения, чтобы вам всегда было что открыть "на потом". Сегодня на siteknig.com доступно более 200000 книг - и каждая готова стать вашей новой любимой. Просто выбирайте, открывайте и наслаждайтесь чтением там, где вам удобно.


