Há um diretório HTTP online ao qual tenho acesso. Eu tentei baixar todos os subdiretórios e arquivos via wget
. Porém, o problema é que, ao wget
baixar subdiretórios, ele baixa o index.html
arquivo que contém a lista de arquivos nesse diretório sem fazer o download dos arquivos.
Existe uma maneira de baixar os subdiretórios e arquivos sem limite de profundidade (como se o diretório que eu quisesse baixar fosse apenas uma pasta que eu quero copiar para o meu computador).
-R
como-R css
excluir todos os arquivos CSS ou usar apenas-A
como-A pdf
para baixar apenas arquivos 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
arquivo que não permita o download de arquivos no diretório, isso não funcionará. Nesse caso, você precisa adicionar-e robots=off
. Veja unix.stackexchange.com/a/252564/10312Consegui fazer isso funcionar graças a este post utilizando o VisualWGet . Funcionou muito bem para mim. A parte importante parece ser verificar a
-recursive
bandeira (veja a imagem).Também descobriu que a
-no-parent
bandeira é importante; caso contrário, ela tentará fazer o download de tudo.fonte
--no-parent
faz?De
man wget
'-r' '--recursive' Ative a recuperação recursiva. Consulte Download recursivo, para mais detalhes. A profundidade máxima padrão é 5.
'-np' '--no-parent' Nunca ascenda ao diretório pai ao recuperar recursivamente. Essa é uma opção útil, pois garante que apenas os arquivos abaixo de uma determinada hierarquia serão baixados. Consulte Limites baseados em diretório, para mais detalhes.
'-nH' '--no-host-directory' Desativa a geração de diretórios com prefixo de host. Por padrão, chamar o Wget com '-r http://fly.srk.fer.hr/ ' criará uma estrutura de diretórios começando com fly.srk.fer.hr/. Esta opção desabilita esse comportamento.
'--cut-dirs = number' Ignora os componentes do diretório de números. Isso é útil para obter um controle refinado sobre o diretório em que a recuperação recursiva será salva.
Pegue, por exemplo, o diretório em ' ftp://ftp.xemacs.org/pub/xemacs/ '. Se você o recuperar com '-r', ele será salvo localmente em ftp.xemacs.org/pub/xemacs/. Enquanto a opção '-nH' pode remover a parte ftp.xemacs.org/, você ainda está preso ao pub / xemacs. É aqui que '--cut-dirs' é útil; faz com que o Wget não "veja" numerar componentes do diretório remoto. Aqui estão vários exemplos de como a opção '--cut-dirs' funciona.
Sem opções -> ftp.xemacs.org/pub/xemacs/ -nH -> pub / xemacs / -nH --cut-dirs = 1 -> xemacs / -nH --cut-dirs = 2 ->.
--cut-dirs = 1 -> ftp.xemacs.org/xemacs/ ... Se você quiser apenas se livrar da estrutura de diretórios, esta opção é semelhante a uma combinação de '-nd' e '-P'. No entanto, ao contrário de '-nd', '--cut-dirs' não perde com subdiretórios - por exemplo, com '-nH --cut-dirs = 1', um subdiretório beta / será colocado em xemacs / beta, como seria de esperar.
fonte
wget
é um recurso inestimável e algo que eu mesmo uso. No entanto, às vezes, existem caracteres no endereço quewget
identificam como erros de sintaxe. Tenho certeza de que há uma correção para isso, mas como essa pergunta não foi feita especificamente sobre o assuntowget
, pensei em oferecer uma alternativa para as pessoas que, sem dúvida, tropeçarem nesta página, procurando uma solução rápida, sem a necessidade de uma curva de aprendizado.Existem algumas extensões de navegador que podem fazer isso, mas a maioria exige a instalação de gerenciadores de download, que nem sempre são gratuitos, tendem a ser desagradáveis e usam muitos recursos. Heres um que não tem nenhuma destas desvantagens:
"Download Master" é uma extensão do Google Chrome que funciona muito bem para baixar de diretórios. Você pode optar por filtrar quais tipos de arquivo baixar ou baixar o diretório inteiro.
https://chrome.google.com/webstore/detail/download-master/dljdacfojgikogldjffnkdcielnklkce
Para obter uma lista atualizada de recursos e outras informações, visite a página do projeto no blog do desenvolvedor:
http://monadownloadmaster.blogspot.com/
fonte
você pode usar o lftp, o canivete swish do download, se você tiver arquivos maiores, poderá adicionar
--use-pget-n=10
ao comandofonte
Você pode usar este complemento do Firefox para baixar todos os arquivos no diretório HTTP.
https://addons.mozilla.org/en-US/firefox/addon/http-directory-downloader/
fonte
Nenhum software ou plug-in necessário!
(apenas utilizável se você não precisar de departamento recursivo)
Use bookmarklet. Arraste esse link nos favoritos, edite e cole este código:
e vá para a página (de onde você deseja baixar arquivos) e clique nesse bookmarklet.
fonte
O wget geralmente funciona dessa maneira, mas alguns sites podem ter problemas e podem criar muitos arquivos html desnecessários. Para facilitar esse trabalho e impedir a criação desnecessária de arquivos, estou compartilhando meu script getwebfolder, que é o primeiro script linux que escrevi para mim. Esse script baixa todo o conteúdo de uma pasta da web inserida como parâmetro.
Quando você tenta baixar uma pasta da Web aberta pelo wget que contém mais de um arquivo, o wget baixa um arquivo chamado index.html. Este arquivo contém uma lista de arquivos da pasta da web. Meu script converte nomes de arquivos escritos no arquivo index.html em endereços da Web e os baixa claramente com o wget.
Testado no Ubuntu 18.04 e Kali Linux, também pode funcionar em outras distros.
Uso:
extrair o arquivo getwebfolder do arquivo zip fornecido abaixo
chmod +x getwebfolder
(apenas pela primeira vez)./getwebfolder webfolder_URL
tal como
./getwebfolder http://example.com/example_folder/
Link para Download
Detalhes no blog
fonte