Как получить живой текст из URL-адреса?
-
12-09-2019 - |
Вопрос
Я пытаюсь захватить все данные (текст), поступающие с URL-адреса, который постоянно отправляет текст, я пытался использовать PHP, но это означало бы, что скрипт работает все время, для чего он на самом деле не создан (я думаю).Так что в итоге я использовал скрипт BASH.
На данный момент я использую wget (я не смог заставить CURL выводить текст в файл)
wget --tries=0 --retry-connrefused http://URL/ --output-document=./output.txt
Итак, wget, похоже, работает довольно хорошо, за исключением одной вещи, каждый раз, когда я перезапускаю скрипт, wget очищает файл output.txt и начинает заполнять его снова, чего я не хочу. Есть ли способ указать wget, чтобы он добавлял к текстовому файлу?
Кроме того, является ли это лучшим способом захвата потока данных в реальном времени?Должен ли я использовать другой язык, такой как Python или ...?
Решение
Вы можете сделать wget --tries=0 --retry-connrefused $URL -O - >> output.txt
.
Объяснение:параметры -O
это сокращение от --output-document
, и прочерк -
означает стандартный выходной сигнал.
Линия command > file
означает write "записать выходные данные command
Для file
", и command >> file
означает "добавить выход из command
Для file
" это то, чего ты хочешь.
Другие советы
Curl по умолчанию не выполняет перенаправления и ничего не выводит, если перенаправление есть.Я всегда указываю --location
вариант на всякий случай.Если вы хотите использовать curl
, попробуй:
curl http://example.com --location --silent >> output.txt
Тот Самый --silent
опция отключает индикатор выполнения.
Вы могли бы попробовать это:
пока это правда
делай
wget -q -O - http://example.com >> имя файла # -O - выводит на экран
сон 2 # сон 2 секунды
Выполнено
завиток http://URL/ >> output.txt
>> перенаправляет вывод из curl в output.txt, добавляя к любым уже имеющимся данным.(Если бы это было просто > output.txt - это перезаписывало бы содержимое output.txt каждый раз, когда вы его запускали).