我正在寻找一种方法来创建计划任务以自动下载“用于 McAfee ePO 的 DAT 包”此处提供。该页面上的链接文本(“用于 McAfee ePO 的 DAT 包”)始终保持不变,但它每天指向不同的 .zip 文件,因此链接目标不同。
有没有办法做到这一点?
答案1
大致如下(为了便于阅读,分成几行):
wget --execute=robots=off --recursive --level 1 --span-hosts \
--accept=.zip --no-directories --domains=download.nai.com \
http://www.mcafee.com/apps/downloads/security-updates/security-updates.aspx
如果在允许下载之前总是要求您接受,则您可能需要保存/加载 cookies。查看 wget 的 --[save|load]-cookies 选项。
答案2
您可能想尝试使用浏览器自动程序 Selenium。或者,如果您使用的是 Mac,伪造的可能是一个更简单的解决方案。
除此之外,通过 curl 管道传输到 awk 再通过管道传输回 xargs curl 可能是最好的选择,但这会非常混乱。
答案3
改进jáquer 的回答:
wget --recursive --no-parent --level=1 --no-directories --reject html \
--accept-regex='avvepo.*dat.zip' --timestamping \
'http://download.nai.com/products/DatFiles/4.x/NAI/'
McAfee 在该目录中保留了最新的三个 DAT 存档,因此上述命令将下载所有三个,但前提是当前目录中的文件比可用文件更旧(这就是事实--timestamping
)。如果您只想使用最新文件执行某些操作,则必须编写一些额外的脚本。但您应该将最新的三个文件保留在下载目录中,以防止每天重新下载所有三个文件。