Faça o download do diretório e subdiretórios via wget

1

Eu tenho uma pasta com visualização de pastas na Web ( link )

/ folder2 tem várias pastas com arquivos PDF dentro delas. Eu quero baixar para o meu servidor via ssh todo o conteúdo de / folder2 incluindo todas as subpastas e arquivos usando wget. Eu tentei o seguinte, mas continuo recebendo apenas um arquivo index.html e 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]# 

Outros comandos que tentei com resultados FAILED semelhantes:

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

wget -r http://example.com/folder1/folder2/ -nd -P /downloads -A PDF
    
por imbayago 07.08.2015 / 10:45

1 resposta

6

I want download to my server via ssh all the content of /folder2 including all the sub folders and files using wget.

Suponho que você queira fazer o download via wget e o SSH não é o problema aqui.

Solução Attilio :

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

Editar

A solução acima é bem adequada para sites de espelhamento; desculpe, eu fui rápido demais para responder e não é ideal para espelhar o PDF.

wget -m -nH --cut-dirs=1 -np -R 'index.*' http://example.com/folder1/folder2/
  • -m , --mirror : baixe recursivamente tudo
  • -nH , --no-host-directories : não coloque os dados dentro de um diretório nomeado com o nome do host
  • --cut-dirs=1 : ignora o primeiro diretório ao criar a hierarquia local
  • -np , --no-parent : não busque os pais!
  • -R , --reject 'index.*' : não salve arquivos com o nome "index. *"

Pode ser útil: -e robots=off para dizer ao wget para ignorar seu robots.txt .

Exemplo

$ 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

Alternativa

Não foi isso que você pediu, mas eu pessoalmente gosto de usar lftp para isso:

lftp -c "open http://example.com/folder1/; mirror folder2"
    
por 07.08.2015 / 11:19