Zum Inhalt springen

Perl: Hyperlink überprüfen


Empfohlene Beiträge

Hallo zusammen,

hab hier mal wieder eine Frage... :)

Ich will mit Perl überprüfen ob eine Datei im Web existiert, und wenn ja, soll sie mit wget heruntergeladen werden. Der Teil mit wget funktioniert auch, bloß weiß ich nicht recht wie ich die Überprüfung hinbekomme... :confused:

so oder so ähnlich würde ich das brauchen... funktioniert in der Form aber nicht

$datei="http://www.mysite.org/bild.jpg";
if (system("wget $datei")) {
# datei existiert
} else {
# existiert nicht
}
...[/PHP]

kennt jemand eine brauchbare Lösung?

mfg

iKo95

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

wozu wget?

Schau dir mal LWP::simple bzw. LWP::UserAgent an ...

# Beispiel

use LWP::UserAgent;

$ua = LWP::UserAgent->new();

$url = 'http://www.somewhere.com/'

$request = HTTP::Request->new('GET', $url);

$file = 'local.html';

$response = $ua->request($request, $file);

if ( $response->is_error() ) {

print "Error-Code : ", $response->code() , "\n";

print "Fehlermeldung: ", $response->message() , "\n";

}

else {

print $response->content() , "\n";

}

cya

alligator

Link zu diesem Kommentar
Auf anderen Seiten teilen

naja wget war das erste was mir da eingefallen ist... :D hatte bloß keinen plan wie ich da ran gehen könnte.

Danke auf jeden Fall für diese tolle Idee! Hab mir ja denken können dass es für sowas bestimmt ne Methode gibt :)

Es klappt leider noch nicht ganz, ich bekomme dauernd 403: Forbidden! wenn ich aber den dateinamen im browser eingebe, erscheint alles problemlos...

hm, ich denke da müsste ich einfach etwas rumbasteln..

Danke für die schnelle Antwort

& gn8

gruß

iKo95

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

wenn Du über LWP::UserAgent eine Anfrage an einen Server schickst, wird per Default 'libwww-perl/xxx' im Header der Anfrage verschickt. Viele Server sind so konfiguriert, dass Anfragen auf Ressourcen von bestimmten UserAgents gesperrt sind.

Ersezte einfach den Standard LWP::UserAgent String gegen einen anderen z. B. 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.8) Gecko/20050511 Firefox/1.0.4'.


$uastr = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.8) Gecko/20050511 Firefox/1.0.4';

$ua->agent($uastr);

$response = $ua->request($request, $file);

Gruß

xmurrix

Link zu diesem Kommentar
Auf anderen Seiten teilen

dankeschön :)

hat mir echt geholfen!

Noch eine frage hätte ich allerdings....

gibt es eine Möglichkeit von WGET Informationen auszulesen... zB wieviele Dateien tatsächlich erfolgreich heruntergeladen wurden? Ich weiss dass wget am Ende des Downloads selbst hinschreibt wieviele Dateien und wieviel Bytes heruntergeladen wurden, aber kann man diese Infos auch in einer Variable abspeichern?

Konkretes Beispiel:

Schleife: Wenn bereits 10 Dateien erfolgreich heruntergeladen wurden -> Download abbrechen, ansonsten weitermachen....

geht sowas? :)

mfg

iKO95

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...