我正在尝试使用以下命令下载乱码异常日志。
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中这样做?
答案 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