Pobierz katalog i podkatalogi przez wget

2

Mam folder z widokiem folderów w Internecie ( http://example.com/folder1/folder2/ )

/ folder2 ma wiele folderów z plikami pdf. Chcę pobrać na mój serwer przez ssh całą zawartość katalogu / folder2, w tym wszystkie podfoldery i pliki korzystające z wget. Próbowałem następujących, ale wciąż otrzymuję tylko plik index.html i plik robots.txt.

[root@myserver downloads]# wget -r --no-parent --reject "index.html*" http://www.example.com/folder1/folder2/
--2015-08-07 07:46:36--  http://www.example.com/folder1/folder2/
Resolving www.example.com... 192.168.1.1
Connecting to www.example.com|192.168.1.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `www.example.com/folder1/folder2/index.html'

    [         <=>                           ] 4,874,325    138K/s   in 37s     

2015-08-07 07:47:42 (128 KB/s) -     `www.example.com/folder1/folder2/index.html' saved [4874325]

Loading robots.txt; please ignore errors.
--2015-08-07 07:47:42--  http://www.example.com/robots.txt
Connecting to www.example.com|192.168.1.1|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 26 [text/plain]
Saving to: `www.example.com/robots.txt'

100%[======================================>] 26          --.-K/s   in 0s      

2015-08-07 07:47:42 (1.42 MB/s) - `www.example.com/robots.txt' saved [26/26]

Removing www.example.com/folder1/folder2/index.html since it should be rejected.

FINISHED --2015-08-07 07:47:42--
Downloaded: 2 files, 4.6M in 37s (128 KB/s)
[root@myserver downloads]# 

Inne polecenia, które próbowałem z podobnymi błędami:

wget -m -p -E -k -K -np http://example.com/folder1/folder2/

wget -r http://example.com/folder1/folder2/ -nd -P /downloads -A PDF
imbayago
źródło
po pierwsze, jeśli pobrałeś example.com, to prawda .... example.com nie ma więcej treści niż indeks i roboty
Schwertspize
po drugie, dlaczego tak bardzo zmieniasz, jeśli nie pobrałeś example.com
Schwertspize,
Nie mogę pobrać niczego innego niż plik index.html i plik robots.txt. W folderze / folder2 znajdują się foldery i pliki. Zmieniłem wszystko, aby ludzie nie odwiedzali witryny example.com w celu pobrania rzeczywistych plików.
imbayago,
wtedy naprawdę nie mogę ci pomóc, ponieważ -r i --no-rodzic pracowali dla mnie ....
Schwertspize

Odpowiedzi:

7

Chcę pobrać na mój serwer przez ssh całą zawartość katalogu / folder2, w tym wszystkie podfoldery i pliki korzystające z wget.

Przypuszczam, że chcesz pobrać za pośrednictwem, wgeta SSH nie jest tutaj problemem.

Rozwiązanie przez Attilio :

wget --mirror --page-requisites --adjust-extension --no-parent --convert-links \
    --directory-prefix=folder2 http://example.com/folder1/folder2/

Edytować

Powyższe rozwiązanie dobrze nadaje się do tworzenia kopii lustrzanych stron internetowych; przepraszam, że byłem trochę za szybki, aby odpowiedzieć i nie jest optymalne do tworzenia kopii lustrzanych PDF.

wget -m -nH --cut-dirs=1 -np -R 'index.*' http://example.com/folder1/folder2/
  • -m, --mirror: pobiera rekurencyjnie wszystko
  • -nH, --no-host-directories: nie umieszczaj danych w katalogu o nazwie z nazwą hosta
  • --cut-dirs=1: pomiń pierwszy katalog podczas tworzenia lokalnej hierarchii
  • -np, --no-parent: nie ściągaj rodziców!
  • -R, --reject 'index.*': nie zapisuj plików o nazwie „indeks. *”

Może się przydać: -e robots=offpowiedzieć wgetowi, aby zignorował twój robots.txt.

Przykład

$ wget -m -nH --cut-dirs=4 -np --reject 'index.*' \
 http://ftp.lip6.fr/pub/linux/distributions/slackware/slackware64-current/source/a/bin/
$ tree
.
└── slackware64-current/
    └── source/
        └── a/
            └── bin/
                ├── banners.tar.gz
                ├── bin.SlackBuild
                ├── debianutils_2.7.dsc
                ├── debianutils_2.7.tar.gz
                ├── fbset-2.1.tar.gz
                ├── scripts/
                   ├── diskcopy.gz
                   └── xx.gz
                ├── slack-desc
                └── todos.tar.gz

Alternatywny

Nie o to pytałeś, ale osobiście lubię do tego używać lftp:

lftp -c "open http://example.com/folder1/; mirror folder2"
bufh
źródło
Użyłem opcji lft. Wygląda na to, że działa idealnie. Opcja wget nie działała. Ciągle pobierał tylko plik index.html i robots.txt. Dziękuję Ci.
imbayago,
+1 za lftp. Jest to jedyny sposób, aby uzyskać kopię lustrzaną wtyczek Jenkins. Za pomocą wgetodrzucenia plik index.html utworzył strukturę folderów tylko z plikami hpi.
n002213f