Como obter texto ativo de um URL?
-
12-09-2019 - |
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…?
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).