Es sind Fehler/Warnungen bei der Verarbeitung der Seite aufgetreten:
- Konstrukt::DBI->error_handler: SQL-Error: DBD::mysql::st execute failed: Incorrect string value: '\xE3\x8D\x00\x00\x00\x09...' for column `gedankenkonstrukt`.`sessions`.`a_session` at row 1 [for Statement " UPDATE sessions SET a_session = ? WHERE id = ?" with ParamValues: 0='...... f.... timestamp c08f62f2f68da4d88ee89395f024cb63..._session_id .185.173.38.225... remote-ip', 1='c08f62f2f68da4d88ee89395f024cb63']
- Konstrukt::DBI->error_handler: SQL-Error: DBD::mysql::db do failed: Incorrect string value: '\xE3\x8D...\x09...' for column `gedankenkonstrukt`.`log`.`description` at row 1 [for Statement "INSERT INTO log (host, type, description, key1, key2, key3, key4, key5) VALUES ('3.139.62.103', 'Konstrukt::Debug->error_message', 'Konstrukt::DBI->error_handler: SQL-Error: DBD::mysql::st execute failed: Incorrect string value: \'\\xE3\\x8D\\x00\\x00\\x00\\x09...\' for column `gedankenkonstrukt`.`sessions`.`a_session` at row 1 [for Statement \"\n UPDATE sessions SET a_session = ? WHERE id = ?\" with ParamValues: 0=\'...... f.... timestamp\n c08f62f2f68da4d88ee89395f024cb63..._session_id\n.185.173.38.225... remote-ip\', 1=\'c08f62f2f68da4d88ee89395f024cb63\']', NULL, NULL, NULL, NULL, NULL)"]
Obwohl ich wie schon gesagt Python recht zugeneigt bin, steckt immernoch ein kleiner Perl-Hacker in mir. Nach vielen Jahren Perl-Entwicklung vielleicht verstndlich.
Also habe ich das gleiche Problem, das zunchst in Perl und in Python in jeweils 11 Zeilen gelst wurde, in einer Zeile Perl gelst:
perl -MLWP::Simple -ne 'print "ERROR: $1 -> $2\n" if /title="([^"]*)".*xmlUrl="([^"]*)"/ and not head($2)' < Meine_Thunderbird_Feeds.opml
Das wird in Python vermutlich schwierig. Falls jemand aber eine Lsung hat, nur her damit ;)
Nachteil: An den HTTP-Error-Code komme ich mit LWP::Simple::head leider nicht ran. Ich knnte getstore
nutzen und nach /dev/null schreiben, das ist aber nicht besonders schn…
Man knnte sich berechtigterweise fragen, ob ich eigentlich nichts besseres zu tun htte… Habe ich eigentlich schon, aber etwas Abwechslung tut ja auch mal gut ;)
Erstellt am 23.06.2007 um 14:45 Uhr von streawkceur.
Abrufe: 1697
-
Kommentare: 31 -
Trackbacks: 0 -
Trackback-Link: http://gedankenkonstrukt.de/blog/trackback/?id=38.
Tags: check, code, feeds, golf, http, oneliner, opml, perl, xml.
Problem
Gleiches Problem, gleiche Lsung. 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.
Lsung
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 Fllen nur eine 2-sekndige Meldung in die Statusleiste schreibt, merkt man das meistens nicht.
Lsung
Um das einfach zu berprfen, kann man seine abonnierten Feeds als OPML exportieren (im Abonnieren-Dialog auf "Exportieren" klicken) und mit diesem kleinen Perl-Script die URLs prfen:
#!/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 ;)
Einschrnkungen
- Parst die Eintrge nicht als XML sondern als Reintext. Das ist generell fehleranfllig, 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 Fllen 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.