卷曲:请求之间的睡眠/延迟

时间:2012-02-09 14:46:44

标签: curl flurry

我正在尝试使用以下命令下载乱码异常日志。

curl --cookie ./flurry.jar -k -L "https://dev.flurry.com/exceptionLogsCsv.do?projectID=49999&versionCut=versionsAll&intervalCut=allTime&direction=1&offset=[0-100:10]" --output "exception#1.csv"

它工作正常,它根据偏移量(10,20,30等)下载csv文件。我想在每个请求之间插入一个延迟。是否有可能在CURL中这样做?

3 个答案:

答案 0 :(得分:4)

使用bash shell(Linux):

while :
do
    curl --cookie ./flurry.jar -k -L "https://dev.flurry.com/exceptionLogsCsv.do?projectID=49999&versionCut=versionsAll&intervalCut=allTime&direction=1&offset=[0-100:10]" --output "exception#1.csv"
    sleep 5m
done

这是一个无限循环,延迟由sleep命令给出。

修改即可。在Windows机器上,您可以改为:

for /L %i in (0,0,0) do (
    curl --cookie ./flurry.jar -k -L "https://dev.flurry.com/exceptionLogsCsv.do?projectID=49999&versionCut=versionsAll&intervalCut=allTime&direction=1&offset=[0-100:10]" --output "exception#1.csv"
    ping -n XX 127.0.0.1>NUL
)

Windows上没有sleep命令。但您可以使用ping来“模仿”它。只需将上面的XX替换为您想要延迟的秒数。

答案 1 :(得分:4)

wget有延迟选项

wget --wait=seconds

以及随机延迟选项

wget --random-wait

答案 2 :(得分:3)

在bash中,这会在0-60范围内暂停一个随机秒数:

for d in {0..100..10}
do
    i=`printf "%03d" $d`
    curl --cookie ./flurry.jar -k -L 'https://dev.flurry.com/exceptionLogsCsv.do?projectID=49999&versionCut=versionsAll&intervalCut=allTime&direction=1&offset='$d --output 'exception'$i'.csv'
    sleep $(($RANDOM*60/32767))
done