Fazendo 'wget' não salvar a página

59

Estou usando o programa wget , mas não quero salvar o arquivo html que estou baixando. Eu quero que seja descartado depois de ser recebido. Como eu faço isso?

    
por Ram Rachum 10.10.2009 / 04:05

8 respostas

76

Você pode redirecionar a saída do wget para / dev / null (ou NUL no Windows):

wget http://www.example.com -O /dev/null

O arquivo não será gravado em disco, mas será baixado.

    
por 10.10.2009 / 05:01
29

Se você não deseja salvar o arquivo e aceitou a solução de baixar a página em /dev/null , suponho que esteja usando o wget para não obter e analisar o conteúdo da página .

Se a sua real necessidade é desencadear alguma ação remota, verifique se a página existe e assim por diante, eu acho que seria melhor evitar o download da página do corpo html em tudo.

Jogue com wget opções para recuperar apenas o que você realmente precisa, ou seja, cabeçalhos http, status da solicitação, etc.

  • assumindo que você precisa verificar se a página está ok (ou seja, o status retornado é 200), você pode fazer o seguinte:

    wget --no-cache --spider http://your.server.tld/your/page.html
    
  • se você quiser analisar cabeçalhos retornados pelo servidor, faça o seguinte:

    wget --no-cache -S http://your.server.tld/your/page.html
    

Consulte a página de manual do wget para mais opções para jogar.
Consulte também lynx uma alternativa para wget.

    
por 10.10.2009 / 08:38
14

$ wget http://www.somewebsite.com -O foo.html --delete-after

    
por 10.10.2009 / 04:16
13

Caso você também queira imprimir no console, o resultado que você pode fazer:

wget -qO- http://www.example.com
    
por 31.03.2011 / 20:24
7

Outra alternativa é usar uma ferramenta como curl , que por padrão envia o conteúdo remoto para stdout em vez de salvá-lo em um arquivo.

    
por 10.10.2009 / 05:49
3

Confira a opção "-spider". Eu o uso para garantir que meus sites estejam ativos e me enviem um e-mail caso não estejam. Esta é uma entrada típica do meu crontab:

46 */2 * * * if ! wget -q --spider http://www.rochesterflyingclub.com/ >/dev/null 2>&1; then echo "Rochester Flying Club site is down" ; fi
    
por 10.10.2009 / 04:46
2

Se você precisar rastrear um site usando o wget e quiser minimizar a perda de disco ...

Para uma caixa * NIX e usando wget , sugiro ignorar a gravação em um arquivo. Eu notei na minha caixa Ubuntu 10.04 que wget -O /dev/null fez com que o wget abortasse os downloads após o primeiro download.
Também notei que wget -O real-file faz com que o wget esqueça os links reais na página. Insiste em que index.html esteja presente em cada página. Tais páginas podem nem sempre estar presentes e o wget não se lembrará dos links que viu anteriormente.

Para rastrear sem gravar no disco, o melhor que eu encontrei é o seguinte

 mkdir /dev/shm/1   
 cd /dev/shm/1
 wget --recursive --relative --no-parent ...

Observe que não há nenhuma opção -O file . O wget irá escrever no diretório $ PWD. Neste caso, é um sistema de arquivos apenas tmpfs . Escrever aqui deve ignorar a rotatividade de discos (dependendo do espaço de troca) e acompanhar todos os links. Isso deve rastrear todo o site com sucesso.

Depois, claro,

 rm --recursive --force /dev/shm/1/*
    
por 05.04.2012 / 23:05
1

Use a opção --delete-after, que exclui o arquivo após o download.

Editar: Oops, acabei de notar que já foi respondida.

    
por 10.10.2009 / 05:16