Solicita ao wget para baixar as páginas de índice de diretório?

1

Estou baixando todos os arquivos de um site abaixo de um nó específico.

wget \
    --recursive \
    --no-clobber \
    --page-requisites \
    --html-extension \
    --convert-links \
    --domains www.___.uk \
    --no-parent \
    http://www.___.uk/____/

Quando o wget encontra um link para um arquivo, é possível dizer ao wget para também fazer o download da listagem do índice do diretório pai (e avô, etc) e todos os outros arquivos vinculados a partir dessas páginas?

Por exemplo:

download /index.html (1 new link found)
download /pdfs/foo.pdf
download /pdfs/ (1 new link found)
download /pdfs/bar.pdf
    
por Annan 12.12.2012 / 01:44

1 resposta

0

do jeito que você descreveu o que você quer, sua solução, parece que você está pensando em um algoritmo, você não vai conseguir isso do jeito que eu não acho. O que ele pode fazer e o que ele faz, é olhar para uma página da Web, fazer o download de todos os arquivos vinculados a ela e quaisquer páginas da Web vinculadas a ela e quaisquer arquivos vinculados a essas páginas da Web.

Considerando o seu condicional de baixar uma página (pai), SE / sob condição de que, há um arquivo .. o fato é que, colocando de lado o aspecto condicional wget não necessariamente será capaz de ir para - baixar-um pai página dada uma página para baixar, porque não funciona assim. Só vê o que está ligado. Assim como ele só pode baixar arquivos para os quais ele vê links.

se as páginas da Web em cada diretório forem do tipo de páginas de índice de diretório que incluam . and .. , o wget poderá fazer o download de uma página da Web e recursar para trás na árvore de diretórios. (não vai tão longe quanto hosts estrangeiros a menos que você faça -H), mas eu suponho que se você não quiser fazer o download todo o site, então você quer usar -np e então não seria capaz de voltar / subir na árvore de diretórios, acima do endereço da página que você especificou para wget.

vamos fingir por um momento que wget poderia voltar atrás (e até certo ponto isso pode ser mencionado no parágrafo acima), primeiro eu não acho que você possa dizer "baixe apenas o diretório pai se houver um arquivo". Mas isso de lado. Não acho que seja importante fazer o download de uma página da Web que não tenha um arquivo. A página da Web, o arquivo htm / html, é apenas uma marcação e alguns links, não ocupa muito espaço.

O que você poderia fazer, é baixar o site inteiro, tanto quanto o wget permitir (wget não pode fazer ls / dir em um diretório e ver tudo o que está lá. ele só sabe do que está vinculado, e recebe um página web para começar). Você pode baixar o lote. E depois trabalhe em consertar sua cópia local. excluir diretórios indesejados, páginas da Web indesejadas, etc., talvez automatizando um pouco disso.

Eu acho que sua pergunta no momento está confusa ... quanto a como o wget funciona. Espero que isso ajude e talvez você possa repensar o que você quer fazer.

Se você quiser fazer o download desses dois arquivos, precisará de uma página da Web vinculada direta ou indiretamente, apontando para outra página da Web vinculada a eles. O wget realmente não vai para trás ou para frente. Não funciona assim. Mas pode ser dito para não voltar além de um certo ponto. E enquanto o padrão é não ir para hosts estrangeiros recursivamente, pode-se dizer que ele pode ir para hosts estrangeiros recursivamente.

Talvez o Curl possa fazer coisas que não podem ser relevantes para o que você quer, mas eu não sei. Eu duvido que o wget possa. mas considere outras soluções em como o wget funciona, o que eu descrevi um pouco.

Se você fizer o download de um site inteiro, por exemplo, ou mesmo de todo o site, mas apenas mais do que deseja, você terá mais poder localmente, pois poderá fazer ls / dir com o que você tem, obter boas listas, delete o que você não quer, automatize. Você também pode querer repensar o que você gostaria de pedir ao Wget para fazer.

    
por 12.12.2012 / 20:05

Tags