Das war ja einfach

Ich dachte, es wäre ja mal eine coole Idee, einen RSS-Feed für bash.org zu basteln. Ich könnte ja nebenbei mal schauen, wie man so etwas aufbaut. Schade, das gab es alles schon fertig. :) Man nehme PyRSS2GEN und Beautiful Soup (nicht die Version aus stable - zu alt) und wenige Zeilen später ist alles gut:

bash-rss.py
#!/usr/bin/python

from BeautifulSoup import BeautifulSoup
import re, sys, urllib, datetime
from xml.dom import minidom
import PyRSS2Gen

baseurl = 'http://bash.org/'
arg = '?' + sys.argv[1]
quotefile = urllib.urlopen(baseurl + arg)
soup = BeautifulSoup(quotefile)
quotefile.close()
quotes = []

for info, quote in zip(soup.fetch('p', 'quote'),
                       soup.fetch('p', 'qt')):
    title = info.b.string
    link =  baseurl + info.a['href']
    description = ''.join([str(line) for line in quote.contents])
    guid = PyRSS2Gen.Guid(link)
    pubDate = datetime.datetime.now()
    quotes.append( PyRSS2Gen.RSSItem(title=title, link=link,
        description=description, guid=guid, pubDate=pubDate)
    )

rss = PyRSS2Gen.RSS2(
        title=soup.html.head.title.string,
        link=baseurl,
        description='Latest quotes from bash.org',
        lastBuildDate=datetime.datetime.now(),
        items=quotes
)

print minidom.parseString(rss.to_xml()).toprettyxml()

Das Skript mit 'latest', 'top' oder so aufrufen (einfach mal die Links auf der Seite anschauen) und es spuckt den Feed aus (wird hier stündlich neu erzeugt).

Page created
Comments? Use or send an e-mail.