Hallo nochmal Bischi.
Erstmal hier eine kleiner bug report:
Code:
http://www.philippwesche.org/2004/writing/#gellmann94/index.html
[37 weitere]
http://www.philippwesche.org/2004/writing/#westlivelyread99/index.html
Anchor links sollten fuer Deine Zwecke schlichtweg ignoriert werden!
Desweiteren denke ich, dass es in reinem Perl deutlich performanter waere. Vielleicht schreibe ich bei Gelegenheit mal eine Implementierung.
Du koenntest Dich prinzipiell auch der verschiedenen Parameter von wget bedienen, z.B.
Code:
wget -rkl 3 http://meinesite.de/foo.php
-r fuer rekursiv, -k fuer convert-links und -l fuer die Tiefe.
Bug Nr. 2: Was auch noch fehlt, ist eine intelligente Loesung fuer Loops im Baum - aus meiner result.html:
Code:
# http://www.philippwesche.org/2004/profile.html
* http://www.philippwesche.org/2004/cv.html
* http://www.philippwesche.org/2004/dc.html
* http://www.philippwesche.org/2004/ad.html
# http://www.philippwesche.org/2004/writing/es.html
* http://www.philippwesche.org/2004/writing/../cv.html
* http://www.philippwesche.org/2004/writing/../dc.html
* http://www.philippwesche.org/2004/writing/../ad.html
Vielleicht waere es auch ein Ansatz, das Log von wget auszulesen (log mit "wget foo.de -o logfile") und da mit Iteration oder Rekursion etwas zu drehen, so im Sinne von
Code:
for ((a = 2; a < ($maxdepth+1); a++));do wget -r -l $a http://meinesite.de/foo.php -o log$a.txt;done
(Moeglichst nur bei geringen Tiefen (< 5 wuerde ich mal sagen) oder grosser Bandwidth)
Ein aehnlicher Ansatz waere, immer -l 1 (oder ist das dann 2?) zu setzen und dann die Links mit regexp extrahieren und nochmal fuer jeden Link das gleiche, bis die Rekursionstiefe erreicht ist. Ich glaube, Dein Programm verfaehrt momentan so?
Ich denke, ich persoenlich taete mich mit bash schwerer als mit Perl, aber da scheiden sich bekanntlich die Geister.
Samsara
.
Lesezeichen