LWP::UserAgent Script läuft nicht
Ilyas
- perl
Hallo Forum-User, Liebe Perl-Profis,
ich habe ein Problem das Folgende Perl-Script auf meinem Apache-Webserver zum laufen zu bringen. Wäre sehr dankbar, wenn jemand von euch dieses Script für mich korrigiert und als .pl-Datei zurückschickt.
#!c:/Perl/bin/perl -w
use LWP::UserAgent;
$ua = new LWP::UserAgent;
$ua->agent("Mozilla/4.7 [en] (WinNT; I) [Netscape]" . $ua->agent);
my $req = new HTTP::Request POST => 'http://www.bigwhat1.com/search2.asp';
$req->content_type('application/x-www-form-urlencoded');
$req->content ('uquery=Testing&id=1555&start=0&scope=global&B1=Search');
my $res = $ua->request($req);
{
print $res->content;
}
else
{
print "Bad luck this time, because: ",$res->status_line,"\n";
print "Bad luck this time\n";
}
Zusätzliche Frage: wie könnte ich dieses Script dazu bringen, jede 5 Minuten eine Abfrage durchzuführen und mir die Resultate per Email zu schicken???
Die Web-Seite http://www.bigwhat1.com/ funktioniert im Moment nicht, Der Satz "Bad luck this time\n"; müsste dagegen aber in Erscheinung treten! Es kommt nur die Fehlermeldung " Internal Server Error".
Hier ein einfacheres Script mit dem Modul LWP::UserAgent, welches auch nicht bei mir läuft. Andere Scripte laufen unter meinem Apache-Webserver einwandfrei. Das Modul LWP ist auch in meiner Perlversion vorhanden. D.h. es müsste eigentlich laufen. Das Script habe ich mit dem normalen Editor unter Programme/Zubehör geschrieben.
#!c:/Perl/bin/perl -w
use LWP::UserAgent;
$url = 'http://www.yahoo.de/';
$agent = new LWP::UserAgent;
$request = HTTP::Request->new('GET', $url);
$result = $agent->request($request);
print $result->content();
Ich wünsche allen Lesern noch einen schönen Tag und vielen Dank für die jenigen, die versuchen mein Problem zu lösen. Drehe schon beinah am Rad:)
Viele Grüße
Ilyas
Moin Moin !
Wenn Du es unbedingt auf dem Server lassen willst, willst Du wahrscheinlich die CGI-Schnittstelle benutzen. Die notwendigen Header gibst Du aber nicht aus.
Lies die Doku vom Modul CGI und benutze es.
Alexander
Hi
1. was steht den in Deinem error.log?
2. Füge mal vor Deiner ersten Ausgabe
print "Content-type: text/html\n\n";
ein um wenigstens eine "vernüftige" Ausgabe im Browser zu bekommen
(wenn Du schon nicht CGI.pm) nutzt).
3. "http://www.bigwhat1.com" ist auch auf "normalem" Wege nicht erreichbar
Zusätzliche Frage: wie könnte ich dieses Script dazu bringen, jede 5 Minuten eine Abfrage durchzuführen und mir die Resultate per Email zu schicken???
Wird auf dem Server nicht gehen, da ein "unendlich" laufendes Script bestimmt nicht funzt (denke ich mir mal).
Ansonsten eben eine Schleife mit einem Timeout - den Content in ein File speichern und anschließend per e-mail absenden (entsprechende Module (MIME::Lite: - hallo Philipp ;-) ) gibt es auf dem CPAN.
Bye
Timothy
Halihallo timothy
Ansonsten eben eine Schleife mit einem Timeout - den Content in ein File speichern und anschließend per e-mail absenden (entsprechende Module (MIME::Lite: - hallo Philipp ;-) ) gibt es auf dem CPAN.
*grrrrrr* :-)) Feind hört mit! :-)
Viele Grüsse
Philipp
Hi Philipp
Feind hört mit! :-)
Wusst ich's doch - nichts hat sich geändert ;-)
"Lauschige" Grüsse
Timothy
Halihallo timothy
Feind hört mit! :-)
Wusst ich's doch - nichts hat sich geändert ;-)
I wo, bloss nicht ernst nehmen ;-)
Vielleicht gestattest du es, mich zu korrigieren: BB[1] is watching you :-)
[1] 1984, George Orwell oder aus'm Fernsehen; Abk. f. Big Brother...
Aber genug der doublethoughts...
Viele Grüsse
Philipp
PS: Hatte das Posting nur per Zufall gelesen; musst dich also nicht beobachtet fühlen ;)
Hi Ilyas,
ich habe ein Problem das Folgende Perl-Script auf meinem Apache-Webserver zum laufen zu bringen.
was hat Dein Skript überhaupt mit dem Apache-Server zu tun?
Nichts an Deiner Aufgabenstellung impliziert HTTP als _Auslöser_ der Aktion - und gerade die 5-Minuten-Terrine, äh - Wiederholung würde ich mit cron lösen wollen.
Streiche "CGI", setze "Perl via Kommandozeile".
Zusätzliche Frage: wie könnte ich dieses Script dazu bringen, jede 5 Minuten eine Abfrage durchzuführen und mir die Resultate per Email zu schicken???
Indem Du es alle 5 Minuten startest, das Ergebnis in eine Datei schreibst und nach jedem Programmstart eines E-Mail mit der Datei sendest ... will sagen: Ich würde das nicht _in_ diesem Skript lösen, sondern in seiner Ablaufsteuerung (und dazu siehe oben).
Vermenge nicht zu viele Aufgaben miteinander. Ein System kleiner, handlicher, vielseitig einsetzbarer Skripte ist viel leichter zu beherrschen als ein undurchschaubarer Monolith.
Viele Grüße
Michael