routing wget --recursivo para stdout (como em -O -) ao invés de um arquivo

2

Eu quero "digitalizar" o conteúdo de um site, de forma recursiva, e enviá-lo para outro programa.

Quando eu corro:

wget -r -O - $SITE

Eu obtenho

WARNING: combining -O with -r or -p will mean that all downloaded content
will be placed in the single file you specified.

Em seguida, o processo de "download" é iniciado, mas é interrompido depois que a primeira página é concluída. Por "travar" quero dizer, nada parece estar acontecendo, nem voltar o prompt de comando até que eu acesse Ctrl+C .

Eu preferiria evitar a opção outputting wget para uma pasta temporária e digitalizar arquivo por arquivo, assim como escrever meu próprio scrapper, o que parece ser o ato mais redundante que se pode imaginar no final de 2012.

    
por Tzury Bar Yochay 25.12.2011 / 10:30

3 respostas

1

wget -r -O - $SITE | scanningProgram

funcionará, desde que você não se importe com nomes de arquivos, nomes de usuário, caminhos etc.

Veja um exemplo

wget -r -O - http://ginatrapani.googlepages.com | sed 's/./X/g'

toda a saída deste site é convertida em X caracteres

    
por 25.12.2011 / 23:20
0

Para qualquer um que encontre este tópico pesquisando, como eu fiz (após um ano e meio), descobri que o curl é roteado para stdout por padrão, enquanto o wget não parece ter sido planejado para esse uso. Então minha solução é:

Use o curl em vez de wget.

    
por 01.08.2013 / 19:39
-1

usar -r ou -p com -O pode não funcionar como esperado: o Wget não baixará apenas o primeiro arquivo a ser baixado e depois baixará o restante para seus nomes normais: todo o conteúdo baixado será colocado em file.try wget \      --recursivo      --page-requirements \      --html-extension \      --convert-links \      --restrict-file-names = windows \      --domains website.org \      --no-parent \ $ SITE

    
por 25.12.2011 / 12:15