вторник, 4 мая 2010 г.

Как извлечь RSS/Atom ссылку из HTML документа

Что такое RSS говорить не нужно. Об этом написано немало, ссылки на RSS можно встретить практически на каждом сайте, узнать по иконке.

А если вкратце, то RSS предоставляет удобную возможность получения новостей, новых статей, изменений публикуемых на сайтах, блогах, подкастах. Для того, чтобы их получать достаточно скопировать ссылку на RSS канал в свой RSS агрегатор. После этого, вся новая информация с интернет ресурсов, будет автоматически доступна в одном месте. Больше нет необходимости каждый раз заходить на сайты, чтобы проверить, что же нового появилось. Вся информация становится доступной из одного места, из вашего приложения для чтения новостей. Это может быть отдельное приложение специально предназначенное для чтения RSS лент, либо ваш почтовый клиент (Thunderbird, Evolution, MS Outlook и др.) либо веб-приложение (как пример Google Reader).


Найти ссылку на RSS в броузере для человека, при определенной сноровке не составляет труда. Я же рассмотрю случай, когда поиском ссылок на RSS ленты будет заниматься компьютер. Для этого необходимо определить каким образом могут представлены ссылки на RSS ленты на странице:

- на мой взгляд самый правильный путь описания ссылки на RSS в заголовке HTML документа с помощью тега link:
<link rel="alternate" type="application/rss+xml" title="RSS" href="url/to/rss/file">
Если бы все указывали ссылки на RSS ленты с помощью этого синтаксиса, пост можно было бы заканчивать. Но, в реальной жизни все совсем так. С одной стороны этому способствует сама спецификация, которая явно не описывает, что ссылки должны быть описаны только таким образом. С другой стороны, человек есть человек и он всегда выбирает то, что ему удобней. Поэтому, следующие пункты:

- ссылки содержащие строки "rss", "atom", "feeds"

- ссылки на xml файлы

Последние два пункта являются не такими надежными как первый и могут закрасться ошибки на неправильные ссылки. Для их минимизации можно воспользоваться следующими шаблонами:
r'/rss.xml$'
r'/atom.xml$'
r'/feed/rss/?$'
r'/feed/atom/?$' 
r'format=feed'
r'type=atom$'
r'feed=atom$'
r'\.xml$'
r'feed=rss$'
r'/rss/?$'
r'/rss20.xml$'
r'/feeds/posts/$',
r'/rss.php$'
r'^http:\/\/feeds\.feedburner\.com'
r'\.rss$'
r'rss.pl$'
r'type=rss2$'
r'/rss/news.xml'
r'/rss/.+\.xml$'
r'/feed/.+\.rss$'
'/feed/$'

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

0 комментариев:

Отправить комментарий