Как получить живой текст с URL? - PullRequest
0 голосов
/ 03 декабря 2009

Я пытаюсь получить все данные (текст), поступающие с URL, который постоянно отправляет текст, я пытался использовать PHP, но это означало бы, что скрипт работает все время, для которого он на самом деле не создан (я думаю). В итоге я использовал скрипт BASH.

В настоящее время я использую wget (я не могу получить CURL для вывода текста в файл)

wget --tries=0 --retry-connrefused http://URL/ --output-document=./output.txt

Таким образом, wget, кажется, работает довольно хорошо, кроме одной вещи, каждый раз, когда я перезапускаю скрипт, wget очищает файл output.txt и снова начинает заполнять его, что мне не нужно. Есть ли способ указать wget добавить в текстовый файл?

Кроме того, это лучший способ для захвата живого потока данных? Должен ли я использовать другой язык, например, Python или ...?

Ответы [ 4 ]

4 голосов
/ 03 декабря 2009

Вы можете сделать wget --tries=0 --retry-connrefused $URL -O - >> output.txt.

Пояснение: параметры -O - это сокращение от --output-document, а тире - означает стандартный вывод .

Строка command > file означает запись «запись вывода command в file», а command >> file означает « добавление вывода command в file», то есть то, что вы хочу.

1 голос
/ 03 декабря 2009

Curl не выполняет перенаправления по умолчанию и ничего не выводит, если есть перенаправление. Я всегда указываю опцию --location на всякий случай. Если вы хотите использовать curl, попробуйте:

curl http://example.com --location --silent >> output.txt

Опция --silent отключает индикатор прогресса.

0 голосов
/ 03 декабря 2009

curl http://URL/ >> output.txt

the >> перенаправляет вывод из curl в output.txt, добавляя любые данные, которые уже есть. (Если бы это был просто> output.txt - это переписывало бы содержимое output.txt при каждом его запуске).

0 голосов
/ 03 декабря 2009

Вы можете попробовать это:

пока верно
делать
wget -q -O - http://example.com >> filename # -O - выводить на экран
спать 2 # спать 2 сек
сделано

...