Etwas wie das?
for i in ; do wget -q -O - http://www.ellinofreneianet.gr/sound.php\?id\=$i | grep ".=podcast/." ; done
Die wget
Optionen sind -q
leise, zeigen keinen Fortschritt usw. und -O -
schreiben die Ausgabe in stdout.
Nicht jede Seite hat einen MP3-Link. Einige zeigen sogar eine Seite, die die 404-Fehlerseite sein kann. Die Seiten ab 0 scheinen ebenfalls leer zu sein.
Die leeren Seiten haben URLs, die in enden podcast/"
, so dass wir sie mit übereinstimmenden Zeichenfolgen ausschließen können, die keine enthalten "
:
... | grep ".=podcast/[^\"]"
Um nur die .mp3
URLs zu erhalten, verwenden Sie
... | grep -o 'bitsnbytesplayer.php.*\.mp3'
Sie haben selbst herausgefunden, wie Sie die Seiten-URL vor jeder MP3-URL ausgeben. Hier ist eine optimierte Variante davon, die nur eine HTTP-Anfrage pro Seite verwendet:
for i in ; do \ wget -q -O - http://www.ellinofreneianet.gr/sound.php\?id\=$i | \ grep -o 'bitsnbytesplayer.php.*\.mp3' && \ echo http://www.ellinofreneianet.gr/sound.php\?id\=$i ; done | sed -n 'h;n;p;g;p'
Der && echo ...
druckt die URL, wenn der grep zuvor eine MP3-URL gefunden hat. Der sed
Befehl ändert die Reihenfolge der Linienpaare.