Curl:请求之间的睡眠/延迟
我正在尝试使用以下命令下载混乱的异常日志。
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 中可以做到这一点吗?
I am trying to download flurry exception logs using the following command.
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"
It works fine and it downloads the csv files based on the offset(10,20,30 etc). I would like to insert a delay between each request. Is it possible to do that in CURL?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
使用 bash shell (Linux):
这是一个无限循环,延迟由
sleep
命令给出。编辑。在 Windows 机器上,您可以执行此技巧:
sleep
命令在 Windows 上不可用。但您可以使用ping
来“模拟”它。只需将上面的 XX 替换为您想要延迟的秒数即可。Using bash shell (Linux) :
It is an infinite loop, and the delay is given by the
sleep
command.Edit. On Windows machine, you can do this trick instead :
The
sleep
command is not available on Windows. But you can useping
to "emulate" it. Just replace the XX above with the number of seconds you want to delay.wget 有延迟选项
和随机延迟选项
wget has delay options
and also random delay option
在 bash 中,这将暂停 0-60 范围内的随机秒数:
in bash, this will pause a random number of seconds in the range 0-60:
对于curl 7.84.0及更高版本,您可以使用请求速率限制
--rate
选项:因此,要在每个请求之间等待 10 秒,请使用
curl --rate 6/m
。在curl 8.10.0及更高版本中,您也可以使用数字作为分母:
您可以使用
curl --rate 1/10s
要求curl每10秒发送一个请求。With curl 7.84.0 and later, you can use request rate limiting with the
--rate
option:So to wait 10 seconds between each request, use
curl --rate 6/m
.With curl 8.10.0 and later, you can use a number for the denominator as well:
You could ask curl to send one request every 10 seconds with
curl --rate 1/10s
.