RSS – это просто!
В первой части статьи я расскажу о том, что представляет из себя RSS (вдруг этого еще кто-то не знает? :), во второй поговорим о создании собственного канала RSS.
первое знакомство
Представьте себе, что у вас имеется собственный сайт, и вы, не покладая рук, трудитесь изо дня в день, наполняя его полезным (и главное - интересным) содержанием. Добавляете новости, ссылки и др. А если на вашем сайте имеется форум, то его содержание меняется с катастрофической быстротой. Как же проще всего донести эту информацию до конечного пользователя, который заинтересован в первую очередь в быстром получении актуальной на данный момент информации. Со стороны простого пользователя сети это выглядит примерно так: пришел на работу, включил компьютер, открыл кучу ссылок из закладок (попутно загрузив из сети целую тучу разного барахла – флэш-роликов, баннеров и т.д.). Все это, безусловно, отнимает драгоценное время, а самое главное - трафик (не все еще перешли на ADSL, да и у пользователей хDSL трафик не бесплатный, а канал – не резиновый). Кроме того, бесконечные reload-ы страниц и вылавливание из горы информации только того, что нужно очень и очень нервирует. Где же выход? Выход в использовании RSS.
К слову, абревиатура эта может расшифровываться по-разному, поскольку указывает на три связанных друг с другом по тематике стандарта: - Rich Site Summary (RSS 0.91);
- RDF Site Summary (RSS 0.9 и 1.0);
- Really Simple Syndication (RSS 2.0).
Чтобы использовать RSS, конечному пользователю следует найти и скачать так называемый RSS-агрегатор – программу, которая берет на себя неблагодарный труд по вылавливанию в сети нужной и актуальной информации. Программы имеются под различные операционные системы, и они, в большинстве своем, бесплатные. Их можно без труда найти на любом поисковом сайте. Под семейство Linux упомяну две из них - Akregator и Knewsticker (существуют, конечно, и другие клиенты для RSS - на этих двух свет клином не сошелся. Я пользуюсь ими потому, что меня они пока устраивают и становятся по умолчанию в моем дистрибутиве). Первая программа – автономная, а вторая является частью kdenetwork и при своем запуске встраивается в панель задач KDE. С программами уже поставляется список RSS-каналов. Если хорошо знаете английский, можете посмотреть - там имеются ссылки на весьма интересные англоязычные проекты различной тематики.
Да! Совсем забыл упомянуть горячо любимый мной норвежский браузер Opera (с недавнего времени совершенно бесплатный) – он то же позволяет просматривать RSS-потоки.
Большой список русскоязычных RSS-лент можно посмотреть на www.kanban.ru.
После подключения к Internet, добавления ссылки на RSS-канал, программа-агрегатор связывается с сервером и получает список новостей, которые выводит в удобном для пользователя виде. Теперь вам не надо зря качать большие объемы ненужной информации – вы можете просматривать только те новости, которые вас заинтересовали!
практикум
Как же создать собственный RSS-канал? Это не очень сложно. Надо только определиться с задачами. Можно, к примеру, организовать вывод последних сообщений на форуме в RSS-ленту, можно добавить в нее новости сайта (динамически обновляемые), можно включать в RSS-поток информацию с других ресурсов сети, можно добавлять туда курсы валют, прогноз погоды и др.
Для начала рассмотрим формат этого пресловутого RSS-файла.
||Эта строка говорит о том, что формат файла – XML, а кодировка - UTF-8 |
| |(это рекомендованное значение, но часто используется значение |
| |windows-1251, сами знаете почему). |
|
|
| |описания канала. |
|
| |обязательно). |
|>http://192.168.1.229/icecastweb/ |Эта секция описывает ссылку на сайт, соответствующий каналу. В моем |
| |конкретном случае, как видите, это http://192.168.1.229/icecastweb/ |
| |(должна присутствовать обязательно). |
|
|Далее следуют необязательные параметры. |
|
| |случае поставлю ru |
|
| |языке) |
|managingEditor>sutulo@tut.by|E-mail редактора канала. Ставлю свой. |
|
|
| |Минска это +0200. |
|
|
|
|
|
|
|>http://192.168.1.229/icecastweb/ |
|
|
|
|
| |
| |картинку указателя мыши. |
|Далее следуют элементы
|
|
||Ссылка на новость. |
|http://localhost/news/news01.html | |
|| |
|
|
|
|
|...................... | |
|
|
|
Вот и все. Если создать такой файл и разместить его на сервере, то при занесении его адреса в RSS-агрегатор мы должны получить список новостей. «Но где же автоматизация?» - спросите вы и будете совершенно правы: вручную создавать RSS-файлы – занятие не из приятных. Так давайте же все автоматизируем! Перейдем, так сказать, от теории к грубой реальности.
Я поставил перед собой следующую простую задачу: у меня на локальном сервере имеется простой текстовый файл news, в который я вручную буду заносить важные, по моему мнению, новости. На основе этого файла и должен формироваться RSS-поток.
Приступим. На локальном сервере я создал каталог rss (в моей системе это /var/www/rss) и поместил в него следующий скрипт с именем rss_script:
#! /bin/sh
echo \<\?xml version=\"1.0\" encoding=\"windows-1251\"?\>>file.rss
echo \
echo \
echo \
echo \http://192.168.1.229/icecastweb/ \>>file.rss
echo \
echo \
echo \
echo \
echo \http://192.168.1.229/icecastweb/ \>>file.rss
echo \
echo \
echo \
env LANG=en date --rfc-2822 >>file.rss
# получаем и выводим текущую дату и время в формате RCF-2822
echo \
echo \
env LANG=en date --rfc-2822 >>file.rss
echo \
echo \
echo \
echo \http://192.168.1.229/icecastweb/ \>>file.rss
echo \
cat /var/www/rss/news >>file.rss
# считываем новость из файла news и записываем ее в файл rss потока
echo \
echo \
env LANG=en date --rfc-2822 >>file.rss
echo \
echo \
echo \
echo \
Этот скрипт, как видите, предельно прост. Его задача - сформировать RSS-поток. Единственные динамические данные в нем - это дата, время и, собственно, новость, которая считывается из файла news. Теперь дело за малым – следует организовать запуск этого скрипта в нужное нам время (либо когда содержимое файла изменилось). Я пошел самым простым путем. Так как новости я не планирую обновлять более 2 раз в день, то запуск скрипта я переложил на могучие плечи cron, и организовал его выполнение дважды в сутки – в 10-00 и в 15-00.
Заключительный шаг – проверка работоспособности. После запуска RSS-агрегатора я добавляю в него адрес RSS-потока http://localhost/rss/file.rss и... по видимому все работает. Новости исправно появляются.
Вот собственно и все.
Zwalker, sutulo@tut.by.
Сетевые решения. Статья была опубликована в номере 10 за 2005 год в рубрике технологии