2010-01-13

Ściąganie wykładów z sieci za pomocą programu wget

Niektóre instytucje naukowe umieszczają w sieci różnej treści wykłady z różnych, ciekawszych lub mniej ciekawych, dziedzin. A skoro umieszczają to publicznie, to można je sobie na własny użytek ściągnąć. Pół biedy kiedy to jest jeden czy dwa pliki, to je można "ręcznie" pobrać. Gorzej jest jeśli natrafimy na prawdziwą kopalnię wiedzy i chcemy ściągnąć dwadzieścia lub więcej plików. Wtedy z pomocą przychodzi nam dobrze znany wszystkim program wget.

Przykład 1. Załóżmy, że chcemy ściągnąć wykłady zapisane w plikach PDF i PPT rozmieszczone w odpowiednich katalogach (np. z podziałem na lata). Uruchamiamy wtedy ściąganie poleceniem:


wget -r -H -l 2 -A pdf,ppt -np http://jakiśtamserwer/


gdzie opcja -r oznacza oczywiście ściąganie rekurencyjne, -H zabranie przechodzenia między hostami w trakcie podążania przez wget między odnośnikami, -l 2 określa 2 poziom podążania przez wget między odnośnikami (należy go dobrać odpowiednio do struktury ułożenia danych które chcemy ściągać, aby nie ściągnęło się nam pół strony uczelni), -A pdf,ppt określa tylko jakie pliki chcemy ściągnąć, zaś opcja -np zabrania przechodzenia do wyższych poziomów hierarchii plików niż ta startowa w trakcie podążania przez wget między odnośnikami.

Przykład 2. Wykład istnieje w postaci pliku HTML z obrazkami i ewentualnymi odnośnikami.


wget -r -H -l 1 -k -np http://jakiśtamserwer/plik.html


Opcje w większości są takie same - opcja -k odpowiada za konwersję odnośników tak by wskazywały na dopiero co ściagnięte pliki lokalne. Parametr -l należy oczywiście dobrać odpowiednio ostrożnie.

Inne programy które mogą być pomocne to: aria2 (nie oferuje pobierania rekurencyjnego ale umożliwia pobieranie wielu plików na raz) i pavuk (oferuje ściąganie rekurencyjne, ale go za dużo nie testowałem).