RSS -> HTML Modul gesucht...
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Das ganze ich ja viel einfacher als ich dachte:
http://www.html-world.de/program/rss_3. ... ormatieren
http://www.html-world.de/program/rss_3. ... ormatieren
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Was willst du dennn haben? RSS 0.9x, RSS 1.0 oder RSS 2.0? Achtung, diese sind allesammt verschieden!
Vielleicht interessiert die ein Script von mir
Vielleicht interessiert die ein Script von mir

My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Die Pylucid-News von Sourceforge sind RSS 2.0:
http://sourceforge.net/export/rss2_proj ... _id=146328
Nach dem Artikel zu urteilen reicht es, die RSS Daten einfach ins HTML mit einzufädeln und mit CSS die Tags sinnvoll zu formatieren... Auf die schnelle ist mir das aber nicht gelungen...
http://sourceforge.net/export/rss2_proj ... _id=146328
Nach dem Artikel zu urteilen reicht es, die RSS Daten einfach ins HTML mit einzufädeln und mit CSS die Tags sinnvoll zu formatieren... Auf die schnelle ist mir das aber nicht gelungen...
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Hmm, ich könnte mir eher vorstellen, dass du sowas mit XSLT bewerkstelligen kannst (in (X)HTML wandeln), dann noch mit CSS nachpolieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Ich denke auch, das XSLT da der richtige Ansatz ist:
http://www.xml.com/pub/a/2003/01/02/tr.html
fs111
http://www.xml.com/pub/a/2003/01/02/tr.html
fs111
Pydoc-Integration in vim - Feedback willkommen: http://www.vim.org/scripts/script.php?script_id=910
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
So....
Man benötigt also PyXML
Nur für das einblenden von RSS ein bischen viel zusätzliche Module. Außerdem soll es ja wieder in einer Python CGI Umgebung funktionieren...
Kann man mit Python-Bordmitteln XSLT Verarbeitung vornehmen?
Man benötigt also PyXML

Kann man mit Python-Bordmitteln XSLT Verarbeitung vornehmen?
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Also ich überlege über eine ganze einfache Filterung die RSS Daten in die Webseite "einzukopieren" um die Tags dann per CSS zu Formatieren.
Also ein RSS sieht so aus:
Mal angekommen ich definiere folgenden Filter:
Also ich will nur die Zeilen channel.item.title und chanel.item.description haben... Kann man das mit den Python XML Basis Modulen machen???
Also ein RSS sieht so aus:
Code: Alles auswählen
<rss version="2.0">
<channel>
<title>SourceForge.net: SF.net Project News: PyLucid</title>
<link>http://sourceforge.net/projects/pylucid/</link>
<description>SF.net Project News: [...]</description>
<copyright>Copyright and [...]</copyright>
<lastBuildDate>Mon, 22 Aug 2005 14:19:49 GMT</lastBuildDate>
<generator>SourceForge.net RSS generator</generator>
<image>
<title>SourceForge.net logo</title>
<url>http://images.sourceforge.net/images/sflogo-88-1.png</url>
<link>http://sourceforge.net/</link>
<width>88</width>
<height>31</height>
<description>The world's largest Open Source software development website</description>
</image>
<item>
<title>Maillist eingerichtet.</title>
<description>Habe die Maillingliste eingerichtet... Somit kann nun jeder, unter http://lists.sourceforge.net/lists/listinfo/pylucid-news sich eintragen. (0 comments)</description>
<author>pylucid@users.sourceforge.net (Jens Diemer)</author>
<link>http://sourceforge.net/forum/forum.php?forum_id=489815</link>
<guid isPermaLink="true">http://sourceforge.net/forum/forum.php?forum_id=489815</guid>
<pubDate>Fri, 19 Aug 2005 14:58:21 GMT</pubDate>
<comments>http://sourceforge.net/forum/forum.php?forum_id=489815</comments>
</item>
<item>
<title>Einrichten...</title>
<description>Nachdem ich neben meiner Homepage http://www.jensdiemer.de/Programmieren/Python/PyLucid eine extra Seite für PyLucid: http://www.pylucid.org eingerichtet hab, startete ich nun hier bei SourceForge ein offizielles Projekt... (0 comments)</description>
<author>pylucid@users.sourceforge.net (Jens Diemer)</author>
<link>http://sourceforge.net/forum/forum.php?forum_id=489612</link>
<guid isPermaLink="true">http://sourceforge.net/forum/forum.php?forum_id=489612</guid>
<pubDate>Fri, 19 Aug 2005 08:31:04 GMT</pubDate>
<comments>http://sourceforge.net/forum/forum.php?forum_id=489612</comments>
</item>
</channel>
</rss>
Code: Alles auswählen
<channel>
<item>
<title></title>
<description></description>
</item>
</channel>
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Hab nun was verblüffend einfaches gefunden, es basiert auf http://www.xml.com/pub/a/2002/12/18/div ... ?page=last
Hab's direkt in PyLucid als Modul eingebaut. SourceCode hier:
http://cvs.sourceforge.net/viewcvs.py/p ... iew=markup
Wie das hinterher auf einer Webseite aussehen kann, ist hier zu sehen:
http://www.pylucid.org/?p=/about/news
http://www.pylucid.org/?p=/Download
Code: Alles auswählen
import xml.dom.minidom
import sys,os, urllib
class RSS:
DEFAULT_NAMESPACES = (
None, # RSS 0.91, 0.92, 0.93, 0.94, 2.0
'http://purl.org/rss/1.0/', # RSS 1.0
'http://my.netscape.com/rdf/simple/0.9/' # RSS 0.90
)
DUBLIN_CORE = ('http://purl.org/dc/elements/1.1/',)
def getElementsByTagName( self, node, tagName, possibleNamespaces=DEFAULT_NAMESPACES ):
for namespace in possibleNamespaces:
children = node.getElementsByTagNameNS(namespace, tagName)
if len(children): return children
return []
def node_data( self, node, tagName, possibleNamespaces=DEFAULT_NAMESPACES):
children = self.getElementsByTagName(node, tagName, possibleNamespaces)
node = len(children) and children[0] or None
return node and "".join([child.data.encode("utf_8") for child in node.childNodes]) or None
def get_txt( self, node, tagName, default_txt="" ):
"""
Liefert den Inhalt >tagName< des >node< zurück, ist dieser nicht
vorhanden, wird >default_txt< zurück gegeben.
"""
return self.node_data( node, tagName ) or self.node_data( node, tagName, self.DUBLIN_CORE ) or default_txt
def print_txt( self, node, tagName, print_string ):
"""
Formatierte Ausgabe
"""
item_data = self.get_txt( node, tagName )
if item_data == "":
return
print print_string % {
"tag" : tagName,
"data" : item_data
}
def print_rss( self, url ):
rssDocument = xml.dom.minidom.parse( urllib.urlopen( url ) )
for node in self.getElementsByTagName(rssDocument, 'item'):
print '<ul class="RSS">'
print '<li><h1><a href="%s">' % self.get_txt( node, "link", "#" )
print self.get_txt( node, "title", "<no title>" )
print "</a></h1></li>"
self.print_txt( node, "date", '<li><small>%(data)s</li>' )
self.print_txt( node, "description", '<li>%(data)s</li>' )
print "</ul>"
RSS().print_rss( "http://sourceforge.net/export/rss2_projnews.php?group_id=146328" )
http://cvs.sourceforge.net/viewcvs.py/p ... iew=markup
Wie das hinterher auf einer Webseite aussehen kann, ist hier zu sehen:
http://www.pylucid.org/?p=/about/news
http://www.pylucid.org/?p=/Download