Создание и настройка RSS ленты

15.05.2019

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

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

Сначала немного теории.

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

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

Если Вы заходите на какой либо сайт и видите вот такие (это с моего сайта ):

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

Что даёт RSS канал? Точнее: чем он полезен?

Владельцам сайтов (web-мастерам) - быстрое оповещение о новостях сайта всем людям, подписанным на Ваш RSS-канал, это своеобразная рассылка краткого анонса новостей сайта.

Посетителям сайта - соотвественно быстрое оповещение о новостяхи обновлениях сайтов, на RSS-каналы, на которые они подписаны. Например, у Вас есть 20 (50 и т.д. любимых сайтов) и постоянно просматривать эти сайты довольно хлопотно. Но воспользовавшись подпиской на RSS-каналы Вы моментально видите на каких сайтах появились новые статьи, уроки, материалы и т.д., имеете возможность просмотреть анонс каждой новости и перейти на эту новость по прямой ссылке .

Лично мне в этом плане очень нравится браузер Operа . Здесь при соединении с Интернетом, автоматически выкидывается окно с новыми RSS-новостями. Вам остается только кликнуть по этой новости и Вы попадаете на эту новую статью нужного сайта. Хотя неплохо организованы RSS новости и в браузерах Firefox и Internet Explorer последних версий.

Как сделать RSS ленту?

Есть много различных версий RSS, но мы возьмем одну из самых последних и наиболее стабильную версию 2.0 . И еще огорюсь, т.к. мы еще только начали изучать язык программирования PHP и следовательно не готовы к автоматизированному наполнению RSS-канала, то добавлять новости придется в ручную, но это довольно просто.

Итак, создайте новый текстовый файл с именем rss.xml . Скопируйте в этот файл код Листинга 1 .

Листинг 1.




http://www.сайт/
RSS-канал новостей сайта www.сайт
ru-ru
Copyright 2008 - 2010 www.сайт Все для создания сайтов
Андрей Краснокутский


http://www..gif
Как создать свой сайт бесплатно? Как заработать в Интернете?
http://www.сайт/


FlashGet 3.5ru - менеджер загрузок. Скачать бесплатно.
http://www..php?id=219
FlashGet - менеджер загрузок, программа специально разработанная для увеличения скорости загрузки файлов и легкого управления файлами во время и после загрузки.
http://www..php?id=219


>

Это краткий (фрагмент) листинг RSS канала новостей с моего сайта, естественно Вы его должны поправить файл rss.xml под свой сайт и под свои новости.

Текстовый файл с именем rss.xml Вы можете назвать как угодно, например luksweb_rss.xml или как то по другому, только помните, что нужно будет сделать видимую ссылку на Вашем сайте на этот файл . Ссылка может быть двух видов: или . Я использую и те и другие ссылки.

Всё, теперь считайте что RSS канал на Вашем сайте уже есть. Когда человек кликнет по такой ссылке, браузер откроет RSS-канал Вашего свайта и предложит подписаться на получение новостей. Вам остается только согласиться.


Любой вебмастер хочет, чтобы его сайт был популярен и посещаем. И использует для этого все возможные способы. Один из вариантов увеличения популярности своего ресурса – использование технологии RSS.

В двух словах о том, что это такое и как это работает. RSS предоставляет возможность пользователям, подписавшимся на RSS-канал, моментально получать сообщения о всех новых материалах, размещенных на вашем сайте. Если анонс вашей статьи окажется интересным, пользователю достаточно нажать на ссылку – и он окажется на вашем сайте. Таким образом, пользователь не забудет о вашем сайте, а будет регулярно получать напоминания о его существовании в виде анонсов статей.

Эта статья посвящена тому, как самому организовать RSS-канал для своего сайта. Итак, как уже было описано выше, в общем виде RSS – это краткое содержание новинок на вашем сайте, которое представляет из себя файл с расширением xml.

Как и все в этом мире, RSS имеет несколько модификаций (версий). Самыми популярными форматами RSS в настоящее время являются RSS 2.0 и Atom. В данном обзоре мы научимся создавать RSS-канал, совместимый с обоими форматами.

Приступим к созданию RSS-ленты. Создаем пустой файл с расширением txt, открываем его, например, Notepad’ом. Первые две строки будут такие:


В них мы указываем, что это документ xml, а лента поддерживает форматы RSS 2.0 и Atom одновременно.

Теперь необходимо указать полный путь, где будет храниться файл с RSS-контентом на вашем сайте. В моем случае это будет выглядеть так:


  1. http://сайт/feed/ - путь до файла на хостинге.
  2. rss.xml - это название файла, который будет хранить новости нашего сайта (который, собственно, мы сейчас и создаем).

Теперь указываем название нашего RSS-канала, ссылку на сайт и краткое описание канала:

Всё для вебмастера
http://сайт/


http://сайт/pic/rss.jpghttp://сайтRSS-канал

И дату, когда наш канал последний раз изменялся:

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

Дату следут вводить на английском языке в следующей последовательности - День недели, Число, Месяц, Год, Время.

  • Sun – Воскресенье
  • Mon – Понедельник
  • Tue – Вторник
  • Wed – Среда
  • Thu – Четверг
  • Fri – Пятница
  • Sat - Суббота
Далее вам необходимо разместить сами новости, которые вы хотите донести до подписчиков вашего RSS-канала. Делается это так:


Как сделать свой RSS-канал?
http://сайт/info/09.shtml

Mon, 19 May 2008 01:29:14 GMT
http://сайт/info/09.shtml

  • ... - между этими тегами заключается весь новостной блок
  • ... - тут пишем заголовок новости
  • ... - ссылка на полную версию новости (статьи)
  • ... - краткое содержание новости
  • ... - дата публикации новости на сайте
  • ... - снова ссылка на полную версию новости (статьи)
  • Если вы размещаете сразу несколько новостей, то для каждой надо сделать такой блок.

    Когда все новости вписаны, в конце закрываем теги ленты новостей:

    Что получили в итоге:





    Всё для вебмастера
    http://сайт/
    Новости портала сайт – всё о создании и популяризации сайтов


    http://сайт/pic/rss.jpg
    http://сайт
    RSS-канал


    Как сделать свой RSS-канал?
    http://сайт/info/09.shtml
    В данном материале дана пошаговая инструкция создания RSS-ленты для своего сайта
    Mon, 19 May 2008 01:29:14 GMT
    http://сайт/info/09.shtml

    Теперь сохраняем файл, меняем его расширение с txt на xml и выкладываем на хостинг. Затем ставим на сайт кнопочку RSS (путь до которой мы прописали в файле) и делаем её ссылкой на нашу ленту новостей.

    RSS-летна, которую мы создали, может содержать только текстовую информацию. При желании мы можем создать более «продвинутый» RSS-канал – с возможностью размещения графической информации (проще говоря – картинок). Делается это на основе уже созданного нами RSS-канала с добавлением в него нового тега CDATA. Цветом я отметил новые вставки в старый код, которые и дают возможность нам создавать RSS-ленту с графикой:





    <!]>




    <!]>


    <!]>

    В данном материале дана пошаговая инструкция создания RSS-ленты для своего сайта]]>


    Как вы видите, теперь многие элементы кода просто включаются в теги , а в описание включена картинка

    Итак, вы создали файл с RSS-лентой (с графикой или без графики) и разместили его на своем хостинге. Теперь самое время убедиться, что все сделано правильно и RSS-канал корректно отображает информацию. Если вы пользуетесь браузерами Opera или Mozilla, то вам достаточно ввести в адресную строку браузера путь до вашей RSS-ленты на хостинге и посмотреть полученный результат. Если хотете потренироваться и посмотреть, как выглядят RSS-каналы с графикой и без, можете поглядеть мои RSS-ленты:

    • - лента с графикой (не обновляется)
    • - лента без графики

    Также будет не лишним проверить свой код на ошибки. Сделать это можно, например, тут - FEED Validator . Данный ресурс просканирует код вашей RSS-ленты и даст заключение о наличии или отстутвии ошибок.

    По материалам сайта http://www.jeder.ru/

    Есть у этого ресурса RSS лента последних изменений. Но вот беда - лента изменений самая минимальная. Там указано только кем, когда и какая страница редактировалась. Нет полных изменений и нет GUID у элементов ленты, поэтому некоторые RSS клиенты (например, Google Reader) не показывают большую часть новостей, считая их одинаковыми.

    Для преобразования ленты в свой, удобный формат, выбор пал на такой специализированный инструмент, как Yahoo Pipes . Но тут постигла неудача. Для получения изменений странички, wiki строго требовала наличия cookie с именем «wikit_e» в http запросе, а научить Yahoo Pipes отсылать куки не получилось. Фокус с HTTP запросом GET и параметром в виде "?COOKIE=" так же не проходил.
    В итоге, выбор пал на более гибкий инструмент - Google Apps Script . В итоге получился вот такой скрипт:
    // Эта функция будет выполняться автоматически, при вызова скрипта как веб-приложения function doGet() { // Задаем URL исходной RSS ленты var feed = "http://wiki.tcl.tk/rss.xml"; // Определяем ID для доступа к кэшу var id = Utilities.base64Encode(feed); // Определяем кэш и пробуем забрать уже собранную ленту из него var cache = CacheService.getPublicCache(); var rss = cache.get(id); // Если в кэше лента не сохранена - переходим к ее созданию if (rss == null) { // Получаем данные RSS ленты в виде XML var data = UrlFetchApp.fetch(feed).getContentText(); var doc = Xml.parse(data); // Выбираем канал var channel = doc.getElement().getElement("channel"); // Выбираем название канала, ссылку, описание ленты var title = channel.getElement("title").getText(); var link = channel.getElement("link").getText(); var desc = channel.getElement("description").getText(); var guid, date; // Начинаем создавать свою RSS ленту, заполняем название, ссылку и описание rss = ""; rss += "" rss += "" + title + "\n"; rss += "" + link + "\n"; rss += "" + desc + "\n"; // Выбираем все элементы ленты и последовательно проходим по каждому var items = channel.getElements("item"); for (var i in items) { item = items[i]; // Выбираем из ленты заголовок, ссылку, дату новости, описание title = item.getElement("title").getText(); link = item.getElement("link").getText(); // Ссылка должна указывать на diff странички link = link.replace(/\/(\d+)$/, "/_/diff?N=$1#diff0"); date = item.getElement("pubDate").getText(); desc = item.getElement("description").getText(); // Формируем GUID для элемента ленты guid = Utilities.base64Encode(link + date); // Скачиваем diff страницы, используя при этом Cookie "wikit_e" как "rss" var fullpage = UrlFetchApp.fetch(link, {"headers":{"Cookie":"wikit_e=rss"}}).getContentText(); // Вырезаем из страницы только body var matched = fullpage.match(/]*>([\w\W]*)<\/body>/i); // Вырезаем заголовки и подвал страницы matched = matched.replace(/

    Похожие статьи