Pergunta

Estou tentando pegar todos os dados (texto) provenientes de uma URL que está constantemente enviando texto, tentei usar PHP, mas isso significaria ter o script rodando o tempo todo, para o qual não foi feito (eu acho).Então acabei usando um script BASH.

No momento eu uso o wget (não consegui fazer o CURL gerar o texto para um arquivo)

wget --tries=0 --retry-connrefused http://URL/ --output-document=./output.txt

Portanto, o wget parece estar funcionando muito bem, além de uma coisa, toda vez que eu reiniciar o script, o wget limpará o arquivo output.txt e começará a preenchê-lo novamente, o que não é o que eu quero. Existe uma maneira de dizer ao wget para anexar ao arquivo txt?

Além disso, esta é a melhor maneira de capturar a transmissão de dados ao vivo?Devo usar uma linguagem diferente como Python ou…?

Foi útil?

Solução

Você pode fazer wget --tries=0 --retry-connrefused $URL -O - >> output.txt.

Explicação:os parametros -O é curto para --output-document, e um traço - significa saída padrão.

A linha command > file significa escrever "escrever a saída de command para file", e command >> file significa "acrescentar saída de command para file"que é o que você quer.

Outras dicas

Curl não segue redirecionamentos por padrão e não gera nada se houver um redirecionamento.Eu sempre especifico o --location opção apenas no caso.Se você quiser usar curl, tentar:

curl http://example.com --location --silent >> output.txt

O --silent opção desativa o indicador de progresso.

Você poderia tentar isso:

enquanto verdadeiro
fazer
wget -q -O - http://exemplo.com >> nome do arquivo # -O - saída para a tela
dormir 2 # dormir 2 segundos
feito

ondulação http://URL/ >> saída.txt

o >> redireciona a saída de curl para output.txt, anexando a quaisquer dados já existentes.(Se fosse apenas > output.txt - isso substituiria o conteúdo de output.txt cada vez que você o executasse).

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top