Вопрос

Я пытаюсь захватить все данные (текст), поступающие с 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 каждый раз, когда вы его запускали).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top