Wie zu packen live text von einer URL?
-
12-09-2019 - |
Frage
Im, der versucht zu greifen alle Daten(text) aus einer URL, die ständig senden Sie text, versuchte ich es mit PHP aber das würde bedeuten, dass das Skript läuft die ganze Zeit, was es nicht wirklich gemacht (denke ich).So landete ich mit einem BASH-Skript.
Im moment nutze ich wget konnte ich nicht, CURL, um die Ausgabe der text in einer Datei)
wget --tries=0 --retry-connrefused http://URL/ --output-document=./output.txt
Also wget scheint zu funktionieren ziemlich gut, abgesehen von einer Sache, jedes mal, wenn ich neu starten, das script ist wget wird klar, dass die output.txt Datei und füllen Sie es wieder auf, das ist nicht was ich will. Gibt es eine Möglichkeit zu sagen, wget zum Anhängen an die txt-Datei?
Auch ist dies der beste Weg, um zu erfassen die live-stream-Daten?Sollte ich eine andere Sprache wie Python oder ...?
Lösung
Können Sie tun wget --tries=0 --retry-connrefused $URL -O - >> output.txt
.
Erklärung:die Parameter, die -O
ist die Abkürzung für --output-document
, und ein Schuss -
Mittel standard-Ausgabe.
Die Zeile command > file
"schreiben" bedeutet "schreiben-Ausgang command
zu file
", und command >> file
bedeutet "append Leistung von command
zu file
"das ist, was Sie wollen.
Andere Tipps
Curl nicht Folgen Umleitungen von Standard-und Ausgänge nichts, wenn es eine Umleitung.Ich habe immer angeben --location
option nur für den Fall.Wenn Sie verwenden möchten curl
, versuchen Sie Folgendes:
curl http://example.com --location --silent >> output.txt
Die --silent
option deaktiviert die Statusanzeige.
Sie könnten dies versuchen:
while true
do
wget -q -O - http://example.com >> mit dem Namen # -O - Ausgänge auf dem Bildschirm
sleep 2 # sleep 2 sec
fertig
curl http://URL/ >> output.txt
die >> leitet die Ausgabe von curl output.txt, Anhängen keine Daten, die bereits dort.(Wenn es nur > output.txt - das würde zu überschreiben den Inhalt der output.txt jedes mal, wenn Sie lief es).