如何从URL抓取实时文本?

时间:2009-12-03 10:42:30

标签: php python bash wget keep-alive

我试图抓住来自不断发送文本的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 :(得分:4)

你可以wget --tries=0 --retry-connrefused $URL -O - >> output.txt

说明:参数-O--output-document的缩写,短划线-表示标准输出

command > file表示写入“commandfile的写入输出”,command >> file表示“{em>追加 {{1}的输出}} command“这就是你想要的。

答案 1 :(得分:1)

默认情况下,Curl不遵循重定向,如果存在重定向则不输出任何内容。为了以防万一,我总是指定--location选项。如果您想使用curl,请尝试:

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

--silent选项会关闭进度指示器。

答案 2 :(得分:0)

你可以试试这个:

虽然真实 做什么 wget -q -O - http://example.com>> filename#-O - 输出到屏幕
睡2#睡2秒
完成

答案 3 :(得分:0)

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

>>将输出从curl重定向到output.txt,附加到已存在的任何数据。 (如果只是> output.txt - 每次运行时都会覆盖output.txt的内容。)