如何从网站延迟触发下载

如何从网站延迟触发下载

通常我用来wget获取触发下载的文件。

不过,我目前正在使用网站生成下载需要几秒钟的时间,因此wget下载 html 而不是我想要的 zip 文件。

我可以使用什么工具来获取触发下载?

答案1

看起来前景并不乐观。以下是我能找到的与您寻找的选项最接近的选项。curl没有提供任何更好的东西。

我很确定超时(倒计时)是为了阻止确切地这种类型的活动。

-T seconds,--timeout=seconds

将网络超时设置为秒秒。这相当于指定--dns-timeout,--connect-timeout, 和--read-timeout,同时进行。

与网络交互时,Wget 可以检查超时情况,如果时间过长则中止操作。这可以防止诸如挂起读取和无限连接之类的异常情况。默认情况下启用的唯一超时是 900 秒读取超时。将超时设置为 0 会完全禁用它。除非您知道自己在做什么,否则最好不要更改默认超时设置。

所有与超时相关的选项都接受十进制值以及亚秒值。例如,0.1 秒是合法(尽管不明智)的超时选择。亚秒超时对于检查服务器响应时间或测试网络延迟非常有用。

--dns-timeout=seconds

将 DNS 查找超时设置为 秒 秒。未在指定时间内完成的 DNS 查找将会失败。默认情况下,除了系统库实现的超时之外,DNS 查找没有超时。

--connect-timeout=seconds

将连接超时设置为秒。建立时间较长的 TCP 连接将被中止。默认情况下,除了系统库实现的连接超时之外,没有连接超时。

--read-timeout=seconds

将读取(和写入)超时设置为秒秒。这个超时的“时间”是指空闲时间:如果在下载过程中的任何一点,超过指定秒数没有收到数据,则读取失败并重新开始下载。此选项不会直接影响整个下载的持续时间。

当然,远程服务器可以选择比此选项要求更早终止连接。默认读取超时为 900 秒。

尽管你可能能够编写如下脚本:

#!/bin/sh -

# an attempt to pause long enough for countdown before opening an accept port

wget https://some/long/url/download-file

sleep 9

exit

华泰

相关内容