Perl: download HTML-Seite
Perl: download HTML-Seite
ist der Download von HTML-Seiten direkt in Perl nötig, oder müsste ich da den Umweg über die Shell nehmen, um zB wget aufzurufen?
hi,
nein is gar kein problem:
mfg
mauser
nein is gar kein problem:
Code: Alles auswählen
#!/usr/bin/perl
use LWP::Simple;
use strict;
my $url = "http://www.google.de";
my $content = get $url;die "Couldn't get $url" unless defined $content;
print $content;
mauser
Danke, das funktioniert!
Ich weiß viel zu wenig über die verschiedenen Module um z. B.
anwenden zu können... ist wie ein Buch mit 7 Siegeln.
Ich weiß viel zu wenig über die verschiedenen Module um z. B.
Code: Alles auswählen
use LWP::Simple;
Aus reiner Neugier:
schreiben?
Kann man das nicht alsmauser hat geschrieben:Code: Alles auswählen
my $content = get $url;die "Couldn't get $url" unless defined $content;
Code: Alles auswählen
my $content = get $url or die "Couldn't get $url";
wollte grad mal zu Testzwecken die Forenstartseite runterladen: mit wget von der Console geht das, wenn ich aber den o.g. Code verwende kommt eine Fehlermeldung:mauser hat geschrieben:Code: Alles auswählen
#!/usr/bin/perl use LWP::Simple; use strict; my $url = "http://www.google.de"; my $content = get $url;die "Couldn't get $url" unless defined $content; print $content;
Couldn't get http://www.debianforum.de/forum/ at ./debianforum.pl line 5.
Die Meldung von wget lautet (möchte ich nicht verwenden, sondern Perl-eigene Kommandos):
Code: Alles auswählen
Auflösen des Hostnamen »www.debianforum.de.... 213.239.213.245
Verbindungsaufbau zu www.debianforum.de[213.239.213.245]:80... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 302 Found
Platz: /forum/[folge]
--22:39:56-- http://www.debianforum.de/forum/
=> `index.html.1'
Verbindungsaufbau zu www.debianforum.de[213.239.213.245]:80... verbunden.
HTTP Anforderung gesendet, warte auf Antwort... 200 OK
- godsmacker
- Beiträge: 902
- Registriert: 16.03.2003 21:50:26
- Lizenz eigener Beiträge: Artistic Lizenz
- Wohnort: Chemnitz
-
Kontaktdaten:
Eigentlich schon. Allerdings prüft ist get $url auch falsch, wenn die Seite einen leeren String oder 0 oder so zurückgibt. Dann würde die ausgeführt. wenn der request erfolgreich war. Aber wann soll das schon vorkommen?Joghurt hat geschrieben:Aus reiner Neugier:Kann man das nicht alsmauser hat geschrieben:Code: Alles auswählen
my $content = get $url;die "Couldn't get $url" unless defined $content;
schreiben?Code: Alles auswählen
my $content = get $url or die "Couldn't get $url";
-Flo
hi,
wundert mich auch das es nicht mit LWP::Simple geht, ich habe hier mal ein anderes beispiel rausgekramt, mit LWP::UserAgent. das funktioniert wunderbar, gibt auch bessere fehlermeldungen aus als LWP::Simple. ich benutze dieses skript (bzw. ein ähnliches, dieses ist ein modifiziertes beispiel von google), um mir den trafficbericht von meinem vserver runterzuladen, da hatte ich noch nie probleme..
mfg
mauser
wundert mich auch das es nicht mit LWP::Simple geht, ich habe hier mal ein anderes beispiel rausgekramt, mit LWP::UserAgent. das funktioniert wunderbar, gibt auch bessere fehlermeldungen aus als LWP::Simple. ich benutze dieses skript (bzw. ein ähnliches, dieses ist ein modifiziertes beispiel von google), um mir den trafficbericht von meinem vserver runterzuladen, da hatte ich noch nie probleme..
mfg
mauser
Code: Alles auswählen
1 #!/usr/bin/perl
2 use LWP::UserAgent;
3 use strict;
4
5 my $url=$ARGV[0];
6 die "Keine URL angegeben" unless defined $url;
7 my $ua = LWP::UserAgent->new();
8 my $request = HTTP::Request->new('GET', $url);
9 my $response = $ua->request($request);
10
11 if($response->is_error())
12 {
13 print "Error-Code : ", $response->code() , "\n";
14 print "Fehlermeldung: ", $response->message() , "\n";
15 }else {
16 print $response->content() , "\n";
17 }
Zuletzt geändert von mauser am 19.08.2005 12:13:47, insgesamt 1-mal geändert.
- godsmacker
- Beiträge: 902
- Registriert: 16.03.2003 21:50:26
- Lizenz eigener Beiträge: Artistic Lizenz
- Wohnort: Chemnitz
-
Kontaktdaten:
Danke, funktioniert
der Code von mauser funktioniert, bei Eingabe von "absoluten" URLs, Danke!