|
Home|Personal| Tutorials|Scripts|Stupid Tools |
yaos° |
» |
HTTP mit Perl |
|
|
Einstieg
Mit dem Modul LWP (Library for WWW access in PERL) ist es möglich in PERL Zugriff auf WWW-Dokumente zu bekommen.
Dieses Modul verhält sich ähnlich einem Browser, es stellt einen HTTP-Request (WWW-Anfrage) an den WebServer und liefert die Antwort (z.B. das HTML-Dokument) zurück. Kleiner Einstieg
Wer zum ersten Mal mit Modulen unter Perl Arbeitet wird jetzt wahrscheinlich erstmal aufstöhnen und fragen wozu diese ganzen "->" Teile sind, aber kümmern wir uns erstmal nicht darum. ;-) Quelltext anzeigen
Zum voherigen Script sind nur ein paar Unterschiede zu bemerken. Diesmal verwenden wir die Option HEAD im Request, was soviel heisst wie das er uns nur die Info über sich seblst und die Datei geben soll. Das Ergebnis wird mit headers_as_string() ausgegeben. Quelltext abspeichern
Dieses Script hat schon eine Fehlererkennung in Zeile 8-12 und gibt das Ergebniss in einer Datei aus, Zeile 15,16 und 17. "if (!$result->is_success())" bedeutet das überprüft wird ob der Request erfolgreich war, das ! ist ein NOT, und sprachlich könnte man sagen: "Wenn verbindung NICHT erfolgreich tue dies&: das". In Zeile 13+14 wird dann der zukünftige Dateinamen generiert. Die Datei wird geöffnet und es wird der content() reingeschrieben. Logs verwirren Mit dem LWP Modul ist es ein leichtes eine eigenen Browserversion zu erstellen. Jeder herkömliche Browser hat eine Kennung in seinem Request-Header, das ermöglicht dem ambitioniertem Webmaster auf die Fehler&Probleme des meist genutzten Browsers einzugehen, ausserdem ist so ein bißchen Statistik schon interresant. Z.B. sendet der Internet Explorer "MSIE 5.5; Windows 98; Win 9x 4.90" als Kennung. Um es perfekt zu machen setzten wir noch einen neuen Referer. Der Referer ist eine Angabe im Request-Header der die URL der vorherigen Seite anzeigt (also von der, von der man kommt). Im nächsten Beispiel setzten wir einen eigenen Browser Typen und Referer und bringen den Webmaster damit ein bisschen ins Grübeln :-).
Zeile 6 und 7 sind bei diesem Beispiel neu hinzugekommen. In Zeile 6 setzten wir eine String-Variable die als String die Browserversion beinhaltet. In der nächste Zeile weissen wir dann dem Agenten diese Browser Version zu, so dass in dem nächsten Request diese Browser Version gesendet werden soll. |