目录
在使用 CURL 发送下一个请求之前休眠 3 秒
curlsleep
浏览量:65
编辑于:2023-04-12 23:00:41

我正在使用终端 CURL 中的范围函数解析网站;记下发出下一个请求之前的 10 秒睡眠命令。

但是,我收到此错误消息:

您对本网站的访问 暂时被阻止。此块将自动 删除时间很短,通常在几分钟内。最常见的 此阻止操作的原因是自动
响应从您的 IP 地址发送到站点的过多网页请求。如果 您正在使用>自动下载工具,请 将请求速率降低到小于 1> 个请求 每 3 秒一次。

这是我正在使用的代码:

while sleep 10; do curl "http://some.site.com/content[1-100]/[1-100]/[1-500].stuff"; done

while true; do curl "http://some.site.com/content[1-100]/[1-100]/[1-500].stuff"; sleep 10; done
解决方案:

您的问题是语法将使用 1..100 中的数字重复请求而不返回,因此您的睡眠将被忽略。[1-100]

当您使用间隔语法时,我不知道如何告诉限制,所以我建议您从外部控制它,例如:curl``curl

for a in {1..100}; do
    for b in {1..100}; do
        for c in {1..500}; do
            curl "http://some.site.com/content$a/$b/$c.stuff"
            sleep 3s
        done
    done
done