Istnieje internetowy katalog HTTP, do którego mam dostęp. Próbowałem pobrać wszystkie podkatalogi i pliki za pośrednictwem wget
. Problem polega jednak na tym, że podczas wget
pobierania podkatalogów pobiera index.html
plik zawierający listę plików w tym katalogu bez pobierania samych plików.
Czy istnieje sposób na pobranie podkatalogów i plików bez ograniczenia głębokości (tak jakby katalog, który chcę pobrać, jest tylko folderem, który chcę skopiować na mój komputer).
-R
jak-R css
wykluczyć wszystkie pliki CSS lub użyj-A
jak-A pdf
tylko do pobierania plików PDF.When downloading from Internet servers, consider using the ‘-w’ option to introduce a delay between accesses to the server. The download will take a while longer, but the server administrator will not be alarmed by your rudeness.
robots.txt
katalogu znajduje się plik uniemożliwiający pobieranie plików, to nie zadziała. W takim przypadku musisz dodać-e robots=off
. Zobacz unix.stackexchange.com/a/252564/10312Dzięki temu postowi wykorzystującemu VisualWGet udało mi się to uruchomić . Działa mi to świetnie. Ważną częścią wydaje się być sprawdzenie
-recursive
flagi (patrz zdjęcie).Stwierdziłem również, że
-no-parent
flaga jest ważna, w przeciwnym razie spróbuje pobrać wszystko.źródło
--no-parent
?Z
man wget
„-r” „--recursive” Włącz pobieranie rekurencyjne. Aby uzyskać więcej informacji, zobacz Pobieranie rekurencyjne. Domyślna maksymalna głębokość to 5.
'-np' '--no-parent' Nigdy nie wchodź do katalogu nadrzędnego podczas pobierania rekurencyjnego. Jest to przydatna opcja, ponieważ gwarantuje, że zostaną pobrane tylko pliki poniżej określonej hierarchii. Aby uzyskać więcej informacji, zobacz Limity oparte na katalogach.
„-nH” „--no-host-katalogi” Wyłącza generowanie katalogów z prefiksem hosta. Domyślnie wywołanie Wget z opcją „-r http://fly.srk.fer.hr/ ” spowoduje utworzenie struktury katalogów zaczynających się od fly.srk.fer.hr/. Ta opcja wyłącza takie zachowanie.
'--cut-dirs = number' Ignoruj komponenty katalogu numerów. Jest to przydatne do uzyskania dokładnej kontroli nad katalogiem, w którym zostaną zapisane rekurencyjne pobieranie.
Weźmy na przykład katalog „ ftp://ftp.xemacs.org/pub/xemacs/ ”. Jeśli odzyskasz go za pomocą „-r”, zostanie on zapisany lokalnie pod ftp.xemacs.org/pub/xemacs/. Chociaż opcja „-nH” może usunąć część ftp.xemacs.org/, nadal utkniesz w pub / xemacs. Tutaj przydaje się „--cut-dirs”; sprawia, że Wget nie „widzi” składników zdalnych katalogów. Oto kilka przykładów działania opcji „--cut-dirs”.
Brak opcji -> ftp.xemacs.org/pub/xemacs/ -nH -> pub / xemacs / -nH --cut-dirs = 1 -> xemacs / -nH --cut-dirs = 2 ->.
--cut-dirs = 1 -> ftp.xemacs.org/xemacs/ ... Jeśli chcesz pozbyć się struktury katalogów, ta opcja jest podobna do kombinacji „-nd” i „-P”. Jednak w przeciwieństwie do „-nd”, „--cut-dirs” nie przegrywa z podkatalogami - na przykład z „-nH --cut-dirs = 1”, podkatalog beta / zostanie umieszczony w xemacs / beta, ponieważ można się spodziewać.
źródło
wget
jest nieocenionym zasobem i czymś, z czego korzystam sam. Jednak czasami w adresie występują znakiwget
identyfikujące jako błędy składniowe. Jestem pewien, że jest na to poprawka, ale ponieważ pytanie nie dotyczyło konkretniewget
, pomyślałem, że zaoferuję alternatywę dla tych osób, które bez wątpienia natkną się na tę stronę, szukając szybkiej poprawki bez wymaganej krzywej uczenia się.Istnieje kilka rozszerzeń przeglądarki, które mogą to zrobić, ale większość z nich wymaga zainstalowania menedżerów pobierania, które nie zawsze są bezpłatne, zwykle powodują ból i zużywają wiele zasobów. Oto taki, który nie ma żadnej z tych wad:
„Download Master” to rozszerzenie dla Google Chrome, które świetnie nadaje się do pobierania z katalogów. Możesz filtrować typy plików do pobrania lub pobrać cały katalog.
https://chrome.google.com/webstore/detail/download-master/dljdacfojgikogldjffnkdcielnklkce
Aby uzyskać aktualną listę funkcji i inne informacje, odwiedź stronę projektu na blogu programisty:
http://monadownloadmaster.blogspot.com/
źródło
Możesz użyć tego dodatku do przeglądarki Firefox, aby pobrać wszystkie pliki z katalogu HTTP.
https://addons.mozilla.org/en-US/firefox/addon/http-directory-downloader/
źródło
Nie wymaga oprogramowania ani wtyczki!
(nadaje się tylko, jeśli nie potrzebujesz rekursywnego deptch)
Użyj bookmarkletu. Przeciągnij ten link w zakładkach, a następnie edytuj i wklej ten kod:
i przejdź na stronę (skąd chcesz pobrać pliki) i kliknij tę zakładkę.
źródło
możesz użyć lftp, eleganckiego scyzoryka pobierania, jeśli masz większe pliki, które możesz dodać
--use-pget-n=10
do poleceniaźródło
wget ogólnie działa w ten sposób, ale niektóre strony mogą mieć problemy i może tworzyć zbyt wiele niepotrzebnych plików HTML. Aby ułatwić to działanie i zapobiec niepotrzebnemu tworzeniu plików, udostępniam skrypt getwebfolder, który jest pierwszym skryptem dla systemu Linux, który sam napisałem. Ten skrypt pobiera całą zawartość folderu internetowego wprowadzonego jako parametr.
Kiedy próbujesz pobrać otwarty folder internetowy przez wget, który zawiera więcej niż jeden plik, wget pobiera plik o nazwie index.html. Ten plik zawiera listę plików folderu internetowego. Mój skrypt konwertuje nazwy plików zapisane w pliku index.html na adresy internetowe i pobiera je wyraźnie za pomocą wget.
Testowany na Ubuntu 18.04 i Kali Linux, może działać również na innych dystrybucjach.
Stosowanie :
rozpakuj plik getwebfolder z pliku zip podanego poniżej
chmod +x getwebfolder
(tylko za pierwszym razem)./getwebfolder webfolder_URL
Jak na przykład
./getwebfolder http://example.com/example_folder/
Link do pobrania
Szczegóły na blogu
źródło