【问题标题】:Make curl wait before downloading下载前让 curl 等待
【发布时间】:2019-12-04 22:58:51
【问题描述】:

我正在尝试使用 cURL 从网站下载一些元素。但是,该网站会在我建立连接后约 5 秒加载这些元素。所以我希望 cURL 有一个延迟 - 连接到网站,休眠约 5 秒,然后才获取代码。那可能吗?如果没有,那我应该用什么? 有没有其他工具可以满足我的需求?

【问题讨论】:

    标签: bash shell unix curl command-line


    【解决方案1】:

    我认为 curl 不能开箱即用。您最好的选择是使用 Python 或 javascript 等编程语言来完成,您可以在其中完全控制。 但是,如果您使用 curl 尝试下载它(它会失败),然后在几秒钟后重新连接(在您的 shell 脚本中使用 sleep)怎么办?那么资源是否可用?

    【讨论】:

    • 您也可以尝试使用--retry--retry-delay 选项来卷曲。
    • 不,那没用。在下载开始之前我只需要一个简单的延迟 - 仅此而已。除了 curl 之外,我还能使用其他工具吗? wget AFAIK 也无法做到这一点。
    • 我想你必须自己写。 Python 的 urllib 应该让它变得非常简单;见docs.python.org/3/library/urllib.html
    【解决方案2】:

    您可以尝试一种穷人的 wget:

    (sleep 5;
     echo 'GET /foo HTTP/1.0';
     echo 'Host: example.com'
     echo '';
     sleep 10) |
        telnet example.com 80
    

    这实际上可以获取http://example.com/foo,尽管它可能需要进行任意数量的修改才能让相关网络服务器接受其手工制作的请求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多