Używam wget do pobierania wszystkich obrazów ze strony internetowej i działa dobrze, ale przechowuje oryginalną hierarchię witryny ze wszystkimi podfolderami, więc obrazy są rozrzucone. Czy istnieje sposób, aby po prostu pobrać wszystkie obrazy do jednego folderu? Składnia, której obecnie używam, to:
wget -r -A jpeg,jpg,bmp,gif,png http://www.somedomain.com
-A
opcją accept potrzebujesz trochę więcej bałaganu , zobacz dokumentację Wget na temat typów plików . Ponadto, jeśli pobierasz do bieżącego katalogu, możesz usunąć-P
opcję prefiksu katalogu . Jeśli pobierasz jeden typ pliku, na przykład tylko pliki jpg, użyj czegoś takiego jakwget -r -A.jpg http://www.domain.com
. Spójrz na zaawansowane przykłady, które dostarcza dokumentacja Wget.-nd
do powyższego sprawia, że działa. Możesz również określić wiele flag -A, na przykład-A "*foo*" -A "*bar*"
--level=inf
lub,--level=9999999999
ponieważwget
może sabotować zadanie z powodu domyślnego maksymalnego poziomu głębokości rekurencji5
.-nd
: brak katalogów (zapisz wszystkie pliki w bieżącym katalogu;-P directory
zmienia katalog docelowy)-r -l 2
: rekurencyjny poziom 2-A
: akceptowane rozszerzenia-H
: span hosts (domyślnie wget nie pobiera plików z różnych domen lub subdomen)-p
: wymagania dotyczące strony (obejmuje zasoby, takie jak obrazy na każdej stronie)-e robots=off
: wykonuje polecenierobotos=off
tak, jakby było częścią.wgetrc
pliku. Spowoduje to wyłączenie wykluczania robotów, co oznacza, że ignorujesz plik robots.txt i metatagi robotów (powinieneś znać konsekwencje tego faktu, uważaj).Przykład: pobierz wszystkie
.jpg
pliki z przykładowego wykazu katalogów:źródło
Napisałem skrypt powłoki, który rozwiązuje ten problem dla wielu stron internetowych: https://github.com/eduardschaeli/wget-image-scraper
(Pobiera obrazy z listy adresów URL za pomocą wget)
źródło
Spróbuj tego:
i poczekaj, aż usunie wszystkie dodatkowe informacje
źródło
wget -nd -r -P /Users/duraiamuthan/Downloads/images/ -A jpeg,jpg,bmp,gif,png http://www.forbes.com/profile/mark-zuckerberg/
Zgodnie ze stroną podręcznika, flaga -P to:
Oznacza to, że określa tylko miejsce docelowe, ale gdzie ma zostać zapisane drzewo katalogów. Nie spłaszcza drzewa do jednego katalogu . Jak wspomniano wcześniej, flaga -nd faktycznie to robi.
@Jon w przyszłości dobrze byłoby opisać, co robi flaga, abyśmy zrozumieli, jak coś działa.
źródło
Proponowane rozwiązania są idealne do pobierania obrazów i czy wystarczy zapisanie wszystkich plików w katalogu, którego używasz. Ale jeśli chcesz zapisać wszystkie obrazy w określonym katalogu bez odtwarzania całego hierarchicznego drzewa witryny, spróbuj dodać „cut-dirs” do wiersza zaproponowanego przez Jona.
w tym przypadku cut-dirs uniemożliwi wget tworzenie podkatalogów do 3 poziomu w hierarchicznym drzewie serwisu, zapisując wszystkie pliki w określonym katalogu. Możesz dodać więcej „cut-dirs” z wyższymi numerami, jeśli mają do czynienia z witrynami o głębokiej strukturze.
źródło
Narzędzie wget pobiera pliki z sieci World Wide Web (WWW) przy użyciu powszechnie używanych protokołów, takich jak HTTP, HTTPS i FTP. Narzędzie Wget jest darmowym pakietem, a licencja jest objęta Licencją GNU GPL. To narzędzie można zainstalować w dowolnym systemie operacyjnym typu Unix, w tym w systemie Windows i MAC OS. To nieinteraktywne narzędzie wiersza poleceń. Główną cechą Wget jest solidność. Został zaprojektowany w taki sposób, aby działał w wolnych lub niestabilnych połączeniach sieciowych. Wget automatycznie rozpocznie pobieranie od miejsca, w którym zostało przerwane w przypadku problemu z siecią. Pobiera również plik rekurencyjnie. Będzie próbować, dopóki plik nie zostanie całkowicie pobrany.
Zainstaluj wget na komputerze z systemem Linux sudo apt-get install wget
Utwórz folder, do którego chcesz pobrać pliki. sudo mkdir myimages cd myimages
Kliknij prawym przyciskiem myszy stronę internetową i na przykład, jeśli chcesz umieścić obraz, kliknij prawym przyciskiem myszy obraz i skopiuj lokalizację obrazu. Jeśli jest wiele obrazów, wykonaj poniższe czynności:
Jeśli istnieje 20 obrazów do pobrania jednocześnie z internetu, zakres zaczyna się od 0 do 19.
wget http://joindiaspora.com/img {0..19} .jpg
źródło