【发布时间】:2019-12-04 22:58:51
【问题描述】:
我正在尝试使用 cURL 从网站下载一些元素。但是,该网站会在我建立连接后约 5 秒加载这些元素。所以我希望 cURL 有一个延迟 - 连接到网站,休眠约 5 秒,然后才获取代码。那可能吗?如果没有,那我应该用什么? 有没有其他工具可以满足我的需求?
【问题讨论】:
标签: bash shell unix curl command-line
我正在尝试使用 cURL 从网站下载一些元素。但是,该网站会在我建立连接后约 5 秒加载这些元素。所以我希望 cURL 有一个延迟 - 连接到网站,休眠约 5 秒,然后才获取代码。那可能吗?如果没有,那我应该用什么? 有没有其他工具可以满足我的需求?
【问题讨论】:
标签: bash shell unix curl command-line
我认为 curl 不能开箱即用。您最好的选择是使用 Python 或 javascript 等编程语言来完成,您可以在其中完全控制。
但是,如果您使用 curl 尝试下载它(它会失败),然后在几秒钟后重新连接(在您的 shell 脚本中使用 sleep)怎么办?那么资源是否可用?
【讨论】:
--retry 和--retry-delay 选项来卷曲。
您可以尝试一种穷人的 wget:
(sleep 5;
echo 'GET /foo HTTP/1.0';
echo 'Host: example.com'
echo '';
sleep 10) |
telnet example.com 80
这实际上可以获取http://example.com/foo,尽管它可能需要进行任意数量的修改才能让相关网络服务器接受其手工制作的请求。
【讨论】: