PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Dateien downloaden


Glen
11.02.2005, 17:49
Hi,
mit diesem Code hole ich mir eine Textdatei von einer HTML-Seite.

use CGI qw(:all); # CGI forms etc
use LWP::Simple;

$url_liste = ('http://www.nummer.de/cgi-bin/nummer-daten?Aktion=Liste&Dokumenttyp=Beitraege');
$localfile_liste = "/daten/liste.txt";

$dokument_liste = get($url_liste);
unless (defined $dokument_liste) { print "ERROR\n"; exit };

getstore($url_liste, $localfile_liste);

In dieser TXT-Datei stehen Nummern. Diese Nummern brauche ich um sie als Variable in einem Link einzusetzen und damit gezippte Dateien runterzuladen.

Mit diesem Link sollen die gezippten Datei geladen werden:
$url_einzel = ('http://www.nummer.de/cgi-bin/nummer-daten?Aktion=Einzel&Dokumenttyp=Beitraege&Dokumentkennung="hier muss die jeweilige Nummer aus der Text-Datei stehen"');

Wie schaffe ich es, dass mir jede Nummer aus TXT-Datei in den Link übernommen wird? Ich also alle gezippte Dateien in einem Verzeichnis speichern kann?
Am besten wäre es, wenn ich die gezippten Dateien gleich entpacken und den Inhalt in einer TXT-Datei speichern könnte.

Kann mir ja jemand weiterhelfen?

Gruß
Glen


butterkeks
11.02.2005, 20:18
Ich versteh nicht ganz...
Müsste das nicht in einer for-schleife lösbar sein, wenn du die maxcimale Zahl von Elementen hast?

Oder willste die runtergeladene Datei parsen?
Dann müssteste zumindest den zu parsenden Teil hier posten

Glen
12.02.2005, 18:02
Ich versteh nicht ganz...
Müsste das nicht in einer for-schleife lösbar sein, wenn du die maxcimale Zahl von Elementen hast?

Oder willste die runtergeladene Datei parsen?
Dann müssteste zumindest den zu parsenden Teil hier posten
Ich möchte einfach jede Nummer aus der TXT-Datei an die URL anhängen und die URL dann aufrufen. Ich denke das müsste mit einer Schleife zu lösen sein. Nur steh ich grad ein wenig auf dem Schlauch und blick es nicht wie ich das anstellen soll.

Gruß
Glen

butterkeks
12.02.2005, 22:18
dann müssteste erst mal ein Beispiel geben, wie die Datei aussieht (stehen die nummern eine pro zeile, durch Komma getrennt, oder anders?)

Wenn die Zahlen untereinander stehen, sieht das ganze z.B. so aus:

# Liste runterladen und anhand von \n (newline) splitten,
# das ganze mit foreach durchlaufen und man hat jede Zahl
# nacheinander in der Variablen $nr.
# Diese kann man dann in seinem url verwenden oder sowas.
foreach $nr(split(/\n/, get($url_liste))) {
getstore($url_liste . "&id=$nr", "./$nr.zip");
}

, natürlich nur, wenn deine GET Variable für den Index auch "id" heißt, ansonsten abändern.

Noch kürzer ginge es übrigens mit map(), das wäre dann nur eine Zeile

Glen
14.02.2005, 16:54
Danke butterkeks es geht jetzt.

Gruß
Glen