Come acquisire testo live da un URL?
-
12-09-2019 - |
Domanda
Sto cercando di acquisire tutti i dati (testo) provenienti da un URL che invia costantemente testo, ho provato a utilizzare PHP ma ciò significherebbe avere lo script in esecuzione per tutto il tempo per il quale non è realmente creato (credo).Quindi ho finito per usare uno script BASH.
Al momento utilizzo wget (non sono riuscito a fare in modo che CURL generi il testo in un file)
wget --tries=0 --retry-connrefused http://URL/ --output-document=./output.txt
Quindi wget sembra funzionare piuttosto bene, a parte una cosa, ogni volta che riavvio lo script wget cancellerà il file output.txt e inizierà a riempirlo di nuovo, il che non è quello che voglio. C'è un modo per dire a wget di aggiungere al file txt?
Inoltre, è questo il modo migliore per acquisire il flusso di dati in tempo reale?Dovrei usare un linguaggio diverso come Python o...?
Soluzione
Tu puoi fare wget --tries=0 --retry-connrefused $URL -O - >> output.txt
.
Spiegazione:i parametri -O
è l'abbreviazione di --output-document
, e un trattino -
significa uscita standard.
La linea command > file
significa scrivere "scrivere l'output di command
A file
", E command >> file
significa "aggiungere uscita di command
A file
"che è quello che vuoi.
Altri suggerimenti
Curl non segue i reindirizzamenti per impostazione predefinita e non restituisce nulla se è presente un reindirizzamento.Specifico sempre il --location
opzione per ogni evenienza.Se vuoi usare curl
, Tentativo:
curl http://example.com --location --silent >> output.txt
IL --silent
l'opzione disattiva l'indicatore di avanzamento.
Potresti provare questo:
mentre è vero
Fare
wget -q -O - http://esempio.com >> nome file # -O - output sullo schermo
sonno 2 # sonno 2 sec
Fatto
arricciare http://URL/ >> output.txt
il >> reindirizza l'output da curl a output.txt, aggiungendo tutti i dati già presenti.(Se fosse solo > output.txt, questo sovrascriverebbe il contenuto di output.txt ogni volta che lo esegui).