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)"]

  

Artikel suchen 

Artikel suchenFilter
Als Finale eine golfige Perl-Lösung in einer Zeile Code. Kann Python das auch?

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: , , , , , , , , .  

Überprüfung des OPML-Exports der in Thunderbird abonnierten Feeds. Jetzt mit Python ;)

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: , , , , , , , , .  

Überprüfung des OPML-Exports der in Thunderbird abonnierten Feeds mit Perl.

Thunderbird OPML-Export

Thunderbird OPML-Export

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: , , , , , , , , .  

ltere Beitrgeltere Beitrge