Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Geschrieben

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

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...