Estou tentando baixar um diretório de site completo usando CURL. O seguinte comando não funciona:
curl -LO http://example.com/
Ele retorna um erro: curl: Remote file name has no length!
.
Mas quando faço isso: curl -LO http://example.com/someFile.type
funciona. Alguma idéia de como baixar todos os arquivos no diretório especificado? Obrigado.
wget --no-parent -r http://WEBSITE.com/DIRECTORY
e também sem--no-parent
- não funcionou.HTTP realmente não tem uma noção de diretórios. As barras que não sejam as três primeiras (
http://example.com/
) não têm nenhum significado especial, exceto..
em URLs relativos. Portanto, a menos que o servidor siga um formato específico, não há como “baixar todos os arquivos no diretório especificado”.Se você deseja baixar o site inteiro, sua melhor aposta é percorrer recursivamente todos os links da página principal. Curl não pode fazer isso, mas o wget pode. Isso funcionará se o site não for muito dinâmico (em particular, o wget não verá links criados pelo código Javascript). Comece com
wget -r http://example.com/
e procure em “Opções de recuperação recursiva” e “Opções de aceitação / rejeição recursiva” no manual do wget para obter opções mais relevantes (profundidade da recursão, listas de exclusão, etc.).Se o site tentar bloquear downloads automatizados, talvez seja necessário alterar a string do agente do usuário (
-U Mozilla
) e ignorarrobots.txt
(crie um arquivo vazioexample.com/robots.txt
e use a-nc
opção para que o wget não tente baixá-lo do servidor).fonte
-e robots=off
. Como alternativa, você pode evitar o download rejeitando-o com-R "robots.txt"
.Nesse caso,
curl
NÃO é a melhor ferramenta. Você pode usarwget
com o-r
argumento, assim:Essa é a forma mais básica e você também pode usar argumentos adicionais. Para mais informações, consulte o
manpage
(man wget
).fonte
Isso não é possível. Não existe uma maneira padrão, geralmente implementada, para um servidor da Web retornar o conteúdo de um diretório para você. A maioria dos servidores gera um índice HTML de um diretório, se configurado para isso, mas essa saída não é padrão nem garantida por nenhum meio. Você pode analisar esse HTML, mas lembre-se de que o formato será alterado de servidor para servidor e nem sempre será ativado.
fonte
wget
oucurl
?Você pode usar a extensão do Firefox DownThemAll! Ele permitirá que você baixe todos os arquivos em um diretório em um clique. Também é personalizável e você pode especificar quais tipos de arquivo baixar. Esta é a maneira mais fácil que encontrei.
fonte
Você pode encontrar um uso para um ripador de sites aqui, isso fará o download de tudo e modificará o conteúdo / links internos para uso local. Um bom pode ser encontrado aqui: http://www.httrack.com
fonte