RSS-лента для любой веб-страницы
СтатьиТехнология RSS становится все популярнее как у пользователей Интернета, так и у создателей сайтов. И это неудивительно - чтение новостей в RSS-формате способно сэкономить как трафик, так и время. Но далеко не всегда RSS-лента есть там, где она нужна. Предположим, что нам очень хотелось бы получать новости в RSS-формате с некоего сайта. Почему именно в RSS? Да потому, что таким образом мы читаем новости с двух или трех десятков сайтов и менять схему не хотелось бы. Но вот беда - тот самый сайт не имеет экспорта новостей в RSS (к слову сказать - не такая уж огромная редкость). Помочь нам могут интернет-сервисы, делающие из любой HTML-страницы ленту RSS.
Рассмотрим один из таких сервисов - Feed43.com.
Feed43 работает по простому принципу - сначала ищет на странице блоки по шаблону, определяемому пользователем, затем из этих блоков строит RSS-ленту. Попробуем разобраться детально, как это делается.
На Feed43 можно регистрироваться, а можно и работать без регистрации - что кому нравится. Стать зарегистрированным пользователем имеет смысл в том случае, если нужно создать несколько лент (в этом случае доступ к ним удобен со страницы My feeds). Еще зарегистрированный пользователь имеет возможность создавать и использовать платные ленты - они имеют такие преимущества перед бесплатными, как меньший период обновления, большие допустимый размер исходной страницы и число новостей в ленте и отсутствие в конце текста каждой новости строчки Delivered by Feed43 service, ставящейся в бесплатных лентах. Итак, регистрируемся и входим. Щелкаем по ссылке Create new feed и приступаем к созданию ленты.
Шаг первый. Указываем имя страницы и кодировку. Имя лучше указать как http://mydomain.ru/page.html, даже если зайти на эту страницу можно, набрав просто http://mydomain.ru, а кодировку, если содержимое страницы не на английском языке, указывать просто обязательно - иначе в ленте получим всякую ерунду. И получаем исходный код страницы.
Шаг второй. Указываем, что и где будем искать. Делается это на основе шаблонов, и некоторые их элементы заслуживают отдельного внимания:
* {*} - воспринимается Feed43 как "что угодно";
* {%} - воспринимается как блок, из которого строится лента, например заголовок или текст новости.
Для начала в поле Global Search Pattern указываем диапазон, в котором будут искаться новости. Можно указать просто {%} - тогда просматриваться будет вся страница, а можно, например, <body>{%}</body> - в этом случае поиск будет ограничен границами действия тега body.
Затем надо указать, какой фрагмент HTML-кода считать новостью. Разберем простой пример. Предположим, что заголовок новости у нас оформляется тегом <h1>, а текст новости - <div class="content">. Тогда шаблон новости в поле Item (repeatable) Search Pattern должен выглядеть следующим образом:
* <h1>{%}</h1>{*}<div class="content">{%}</div>
Нажимаем кнопку Extract и смотрим в окне Clipped Data - что найдено на странице.
Нужно отметить, что заголовок каждой новости у нас определен как {%1}, а текст - как {%2}.
Шаг третий. Из найденных блоков собираем ленту. Заполняем поля Feed Title, Feed Link и Feed Description - это название, ссылка и описание ленты соответственно. Примечание здесь одно - согласно справке Feed43 в поле Feed Link надо указывать ссылку на исходную страницу, а не на саму ленту.
В поле Item Title Template вводим {%1} (строку заголовка вставляем без изменений), в Item Link Template - ссылку на исходную страницу (поскольку сама новость собственной ссылки не имеет), в Item Content Template - {%2} (текст новости вставляем также без изменений). В тексте новости (и только в нем) можно использовать HTML-теги, но стоит убедиться, что они будут нормально пониматься программами чтения RSS-ленты. Нажимаем Preview - и видим готовую ленту:
Под окном просмотра дается ссылка на ленту. Копируем ее, вставляем в RSS-агрегатор и читаем новости в привычном виде.
В заключение стоит отметить, что Feed43, конечно же, не единственный такой сервис. Можно найти, например, и FeedYes, и FeedFire, но они уже не дают возможность какой-либо настройки в бесплатном аккаунте - можно просто указать страницу, с которой брать новости. Если повезет - удастся сделать ленту на основе этой страницы, если нет - остается либо платить, чтобы иметь возможность детально настраивать процесс, либо искать другой сервис. Такой, как Feed43.