WD5 - разработка сайтов

Как парсить RSS на Django с выводом на сайт

Достаточно часто требуется получить новости с другого сайта, или произвести обмен данными между своими ресурсами.

Проще всего это сделать на django через парсинг RSS ленты.

Пример для вывода последних новостей с сайта WD5.RU

Файл rssview.py в папке templatetags


# -*- coding: UTF-8 -*-
from django import template
register=template.Library()
import datetime
import feedparser

@register.inclusion_tag('Wd5PageApp/rssfeed.djhtml')
def pull_feed(feed_url, posts_to_show=5):
    try:
        feed = feedparser.parse(feed_url)
        posts = []
        for i in range(posts_to_show):
            pub_date = feed['entries'][i].updated_parsed
            published = datetime.date(pub_date[0], pub_date[1], pub_date[2] )
            posts.append({
                          'title': feed['entries'][i].title,
                          'summary': feed['entries'][i].summary,
                          'link': feed['entries'][i].link,
                          'date': published,
                          })
    except:
        pass
    return {'posts': posts}
В нужном шаблонном файле данный тег будет вызываться следующим образом

{% load rssview %}
{% pull_feed 'http://wd5.ru/rss.xml' 3 %}

где после pull_feed - адрес rss для парсинга, 3 - количество выводимых записей

Рекомендуется включить кеширование, в шаблонной системе это будет выглядеть как


        {% load cache %}
		{% cache 1800 feed  %}
          {% load rssview %}
          {% pull_feed 'http://wd5.ru/rss.xml' 3 %}
        {% endcache %}
None