こんにちは sohnishi です。
今回はDjangoでAmebaブログのRSSリーダーを作ってみたいと思います。
Amebaブログは、
http://ameba.jp/【ID】/rss.html
で、RSSフィードの取得が可能です。
何ら難しいことはなく、
django-feedparser
を使うと簡単に出来ちゃいます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
from django.core.management import BaseCommand from Hogehoge import models import feedparser class Command(BaseCommand): def add_arguments(self, parser): parser.add_argument('op1') parser.add_argument('--op2') def handle(self, *args, **options): idx = models.Index.objects.all().first() max = models.Blog.objects.all().order_by("-id")[0] if max.pk == idx.pk: idx.value = 1 else: idx.value += 1 idx.save() blog = models.Blog.objects.all().filter( id=idx.value, ).first() rss_link = blog.link + "rss.html" feeder = feedparser.parse(rss_link) for entry in feeder['entries']: item = models.Item.objects.get_or_create( blog_id=idx, link=entry['link'], defaults={ 'title': entry['title'], 'description': entry['description'], 'date': entry['date'] }, ) |
あとはcronでスケジューリングしてあげれば、自動でがさがさ拾ってきてくれます。
get_or_createで重複もしない作りにしています。
以上、【サクッと】作ってみたRSSリーダーのご紹介でした。