Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Perl: Hyperlink überprüfen

Empfohlene Antworten

Veröffentlicht

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

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

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

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

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.