如何从网址获取实时文本?
我想从一个不断发送文本的URL获取所有数据(文本),我试过用PHP,但那样的话脚本就得一直运行,而我觉得这并不是它的本意。所以我最后用了一个BASH脚本。
目前我在用wget(我没法让CURL把文本输出到文件里)
wget --tries=0 --retry-connrefused http://URL/ --output-document=./output.txt
所以wget似乎工作得不错,除了一个问题,每次我重新启动脚本时,wget都会清空output.txt文件,然后重新开始填充,这不是我想要的。有没有办法让wget把内容追加到txt文件里?
另外,这样捕捉实时数据流是最好的方法吗?我应该用Python之类的其他语言吗?
4 个回答
0
使用命令:curl http://URL/ >> output.txt
这里的 >> 是把 curl 命令的结果保存到 output.txt 文件里,并且会把新内容加到文件已有的内容后面。如果你用的是 > output.txt,那每次运行这个命令时,output.txt 里的内容就会被新内容覆盖掉。
1
Curl 默认情况下不会自动跟随重定向,如果遇到重定向,它什么都不会输出。我总是会加上 --location
这个选项,以防万一。如果你想使用 curl
,可以试试:
curl http://example.com --location --silent >> output.txt
--silent
这个选项可以关闭进度指示器。
4
你可以使用这个命令:wget --tries=0 --retry-connrefused $URL -O - >> output.txt
。
解释一下:参数 -O
是 --output-document
的简写,而一个短横线 -
表示 标准输出。
这里的 command > file
意思是把 command
的输出写入到 file
这个文件里,而 command >> file
则表示把 command
的输出 追加 到 file
里,这正是你想要的效果。