Problem
Gleiches Problem, gleiche Lösung. Aber zur Abwechslung mal in Python. Bin ohnehin in letzter Zeit recht interessiert in Python, da dachte ich mir, dass das doch mal eine nette Übung ist.
Lösung
Hier also das Python-Script:
#!/usr/bin/python import urllib2, re pattern = re.compile('title="([^"]*)".*xmlUrl="([^"]*)"', re.I) opml = open("Meine_Thunderbird_Feeds.opml", "r") for line in opml: result = pattern.search(line) if result: title, url = result.group(1), result.group(2) try: urllib2.urlopen(url) except urllib2.HTTPError, e: print "ERROR (%s): %s -> %s\n" % (e, title, url)
Abgrenzung zur Perl-Version
- Parst auch kein XML
- Wird allerdings nicht als "Bad Behavior" erkannt.
Erstellt am 23.06.2007 um 14:11 Uhr von streawkceur.
Abrufe: 1728
-
Kommentare: 0 -
Trackbacks: 1 -
Trackback-Link: http://gedankenkonstrukt.de/blog/trackback/?id=37.
Tags: atom, check, code, feeds, http, opml, python, rss, xml.
Problem
Ich habe ne Menge Feeds in Thunderbird abonniert.
Ab und zu ändern sich da die Feed-URLs oder die Seiten verschwinden ganz. Da Thunderbird in diesen Fällen nur eine 2-sekündige Meldung in die Statusleiste schreibt, merkt man das meistens nicht.
Lösung
Um das einfach zu überprüfen, kann man seine abonnierten Feeds als OPML exportieren (im Abonnieren-Dialog auf "Exportieren" klicken) und mit diesem kleinen Perl-Script die URLs prüfen:
#!/usr/bin/perl use LWP::UserAgent; my $ua = LWP::UserAgent->new(); open(OPML, '<', 'Meine_Thunderbird_Feeds.opml'); foreach my $line (<OPML>) { if ($line =~ /title="([^"]*)".*xmlUrl="([^"]*)"/i) { my ($title, $url) = ($1, $2); my $response = $ua->head($url); print "ERROR (" . $response->status_line() . "): $title -> $url\n" unless $response->is_success(); } }
Ohne die Leer- und Shebang-Zeilen nur 11 Zeilen ;)
Einschränkungen
- Parst die Einträge nicht als XML sondern als Reintext. Das ist generell fehleranfällig, funktioniert in diesem Falle aber gut.
- Der HTTP-Request wird von Wordpress als "Bad Behavior" identifiziert, weil er nicht wie ein Request von einem Webbrowser aussieht. Der Feed funktioniert in diesen Fällen i.d.R. jedoch problemlos.
Erstellt am 23.06.2007 um 13:45 Uhr von streawkceur.
Abrufe: 1514
-
Kommentare: 0 -
Trackbacks: 2 -
Trackback-Link: http://gedankenkonstrukt.de/blog/trackback/?id=36.
Tags: atom, check, code, feeds, http, opml, perl, rss, xml.