Links prüfen

Hallo zusammen,
ich würde gern wissen, wie so etwas mit Perl grundsätzlich ablaufen könnte und versuche es mal mit direkten Fragen (wie ich mir das als relativer Anfänger vorstelle…)

  1. Wie erreiche ich, dass nicht auf der Festplatte des Hosters, sondern im Web gesucht wird?
  2. Mit welcher Methode prüft man die Verfügbarkeit von html-Dokumenten- ping?
  3. Wie fängt man die Antwort des zugehörigen Servers auf?
    Und: Geht das überhaupt, wenn man (wie ich) nur die Standardmodule zur Verfügung hat?
    Kann mir da wer auf die Sprünge helfen?

Grüße
Bernd

Hallo,

  1. Wie erreiche ich, dass nicht auf der Festplatte des
    Hosters, sondern im Web gesucht wird?

Indem du a) eine Suchmaschine benutzt oder b) „von Hand“ per http die entsprechenden Seiten herunterlädst.

  1. Mit welcher Methode prüft man die Verfügbarkeit von
    html-Dokumenten- ping?

lokal mit if (-f /pfad/zur/datei.html), entfernt indem du versuchst sie herunterzuladen (siehe 3)) und den return-code des Server auswertet.

  1. Wie fängt man die Antwort des zugehörigen Servers auf?
    Und: Geht das überhaupt, wenn man (wie ich) nur die
    Standardmodule zur Verfügung hat?

Für dich wäre sicher LWP::Simple sehr gut geeignet. Ich weiss allerdings nicht, ob das in der Standarddistribution dabei ist, ich befürchte nicht. Aber du kannst überall, wo du eigene perl-Programme installieren kannst auch eigene Module installieren. Ist zwar nicht so sauber, aber weniger Aufwand, als selbst die Bibliotheken nachzuprogrammieren.

Kann mir da wer auf die Sprünge helfen?

Wenn du, wie im Betreff angedeutet, überprüfen willst, ob die Links auf einer Website „dead links“ sind oder funktionieren gibt es bereits Lösungen, die du mit einer google-Suche vermutlich auch finden wirst.

Grüße,
Moritz

Nachtrag
Hallo,

schau dir mal http://validator.w3.org/checklink an, wenn man auf „download“ klickt kann man sich auch die zugrunde liegende Software 'runterladen

Grüße,
Moritz

Hallo Moritz,

Indem du a) eine Suchmaschine benutzt oder b) „von Hand“ per
http die entsprechenden Seiten herunterlädst.

Und genau da fehlt mir im Ansatz eine Info: Wie bewerkstelligt man das denn?
So naiv

 open (TEST, "http://www.wer-weiss-was.de/content/start.shtml") || die ("$!\n");

anscheinend :-} eher nicht, oder?

Für dich wäre sicher LWP::Simple sehr gut geeignet. Ich weiss
allerdings nicht, ob das in der Standarddistribution dabei
ist,

Ist es nicht und selbst installieren darf ich auch nichts (zumindest hat der Hoster noch nichts anderes geantwortet…)

Wenn du, wie im Betreff angedeutet, überprüfen willst, ob die
Links auf einer Website „dead links“ sind oder funktionieren

richtig.

gibt es bereits Lösungen,

Klar endlos- aber wenn ich was fertiges wollte, würde ich hier nicht fragen…
…und das meiste, was ich gefunden habe, benötigt eben LWP::Simple (so auch das Ding vom W3C).

Grüße
Bernd

Hallo,

Indem du a) eine Suchmaschine benutzt oder b) „von Hand“ per
http die entsprechenden Seiten herunterlädst.

Und genau da fehlt mir im Ansatz eine Info: Wie bewerkstelligt
man das denn?
So naiv

open (TEST,
http://www.wer-weiss-was.de/content/start.shtml“) || die
("$!\n");

anscheinend :-} eher nicht, oder?

Nein.

Für dich wäre sicher LWP::Simple sehr gut geeignet. Ich weiss
allerdings nicht, ob das in der Standarddistribution dabei
ist,

Ist es nicht und selbst installieren darf ich auch nichts
(zumindest hat der Hoster noch nichts anderes geantwortet…)

Aber du darfst du selbst CGI-Skripts auf den Server legen? dann spricht doch nichts dagegen, die .pm-Datei des Moduls ins gleiche Verzeichnis zu legen und @INC entsprechend zu erweitern…

Wenn du, wie im Betreff angedeutet, überprüfen willst, ob die
Links auf einer Website „dead links“ sind oder funktionieren

richtig.

gibt es bereits Lösungen,

Klar endlos- aber wenn ich was fertiges wollte, würde ich hier
nicht fragen…
…und das meiste, was ich gefunden habe, benötigt eben
LWP::Simple (so auch das Ding vom W3C).

… weil es die einfachste Lösung ist. Alles andere (z.B. über IO::Socket::INET) ist viel Aufwand und fehlerträchtig. Daher empfehle ich dringenst, LWP::Simple zum Laufen zu bringen. Wenn du das nicht willst, kannst du dir immer noch den Quelltext dieses Pakets anzuschauen und dich davon inspirieren lassen.

Grüße,
Moritz

1 Like

Hallo wieder,

dann spricht doch nichts dagegen, die .pm-Datei des Moduls ins
gleiche Verzeichnis zu legen und @INC entsprechend zu
erweitern…

Ah- so einfach geht das…
…habe mich noch nicht so mit den Modul-Tricksereien beschäftigt und somit wieder was gelernt. Werde ich jetzt mal in Angriff nehmen, wenn ich den ftp-Zugang vom hiesigen Netz aus starten kann.

Gruß & Dank
Bernd