Schrift
[thread]12137[/thread]

Fehler abfangen bei WWW::Mechanize



<< >> 4 Einträge, 1 Seite
Kean
 2008-07-05 12:54
#111878 #111878
User since
2004-08-18
463 Artikel
BenutzerIn

user image
Ich nutze das Modul WWW::Mechanize um Webseiten abzufragen. Dies geschieht in einer Schleife ungefähr 100 mal.
Leider bricht das Programm immer mal wieder ab und es kommt folgende Ausgabe:

Code: (dl )
Error GETing http://www.abc.org/test.php: Can't connect to www.abc.org:80 (Bad hostname 'www.abc.org') at attwarn.pl line 67


Kann ich dies irgendwie abfangen???

Hier ein kleiner Ausschnitt des Quellcodes:

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
while ($ende > $a)
        {
        sleep($sek);

        if ($mech->get( "http://www.abc.org/test.php" ))
                {

                if ( $mech->content =~ /xy/m )
                        {
                        open (AUSGABE, ">>log.txt");
                        print AUSGABE datum()." : TEST!";
                        close (AUSGABE);
                        }
                else
                        {
                        open (AUSGABE, ">>log.txt");
                        print AUSGABE datum()." : TEST2";
                        close (AUSGABE);
                        }

        }
GwenDragon
 2008-07-05 13:13
#111879 #111879
User since
2005-01-17
14601 Artikel
Admin1
[Homepage]
user image
Schau dir mal die Parameter des Konstruktors new an.

autocheck => [0|1]
onwarn => \&func
onerror => \&func


Da kannst du doch Fehler selbst abfangen oder auf Fehler prüfen, je nachdem was du brauchst.
Kean
 2008-07-05 18:29
#111885 #111885
User since
2004-08-18
463 Artikel
BenutzerIn

user image
Okay das hab ich übersehen. Dann müsste ich fehlermeldungen ja mit

Code: (dl )
my $mech = WWW::Mechanize->new( autocheck => 1, onerror => undef );


abfangen können ohne das er abbricht oder?
#Kein Kommentar
 2008-07-05 20:46
#111890 #111890
User since
2007-06-09
575 Artikel
HausmeisterIn
[default_avatar]
versuch lieber my $mech = WWW::Mechanize->new( autocheck => 1, onerror => sub{} );
kommt mir ehrlich gesagt sauberer vor
Gerade weil wir alle in einem Boot sitzen, sollten wir froh sein, dass nicht alle auf unserer Seite sind
<< >> 4 Einträge, 1 Seite



View all threads created 2008-07-05 12:54.