Wget like utility可以在mysite.com/img/目录下载所有图像

我对mysite.com/img/目录的访问被阻止。

但是,该目录中的所有图像都是n.jpgforms,其中n是第n个图像。

我对mysite.com/img/n.jpg访问权限未被阻止

无论如何,我保存图像1-500( mysite.com/img/1.jpgmysite.com/img/500.jpg )?

我正在使用ubuntu 11.10

最简单的解决方案可能是使用bash大括号扩展

 wget http://mysite.com/img/{1..500}.jpg 

还可以选择循环,允许您在每个请求之间进行一些等待。

 for n in $(seq 1 500); do wget http://mysite.com/img/${n}.jpg sleep 0.1 done 

(以上内容可直接在shell中运行。)

还有另一种方法可以使用wget成功完成此操作,我已成功用于一个站点,您应该能够修改下面的其他站点的说明。 它涉及生成一个url列表,然后将该列表提供给wget

1)例如,假设您要下载Full Circle Magazine (Ubuntu杂志)的所有63种pdf杂志,但您的下载管理员无法一次下载所有这些杂志。 因此,找到第一个pdf文件的链接 ,并快速检查其他杂志链接是否采用相同的url格式。

2)利用第1部分中获得的知识,我们现在可以转到我们的脚本来生成URL。 下面的脚本运行一个until循环,我已经修改过(归功于它的发起者)。 您可以通过将杂志的数量放在until [ $i = 63 ]部分并在echo后放置正确的URL来确定此脚本,并确保"$i"位于要回显的URL的正确部分,以便更改每次循环运行。 生成URL然后将其附加到文本文件中 – 这在脚本运行时会在瞬间发生,并且设置起来并不像听起来那么复杂!

将脚本保存在文本编辑器中,使其可执行并运行; 当您想要从与我的示例不同的站点下载时,如上所述修改它。

 #!/bin/bash i=0 until [ $i = 63 ] ; do i=$(($i+1)) echo "http://dl.fullcirclemagazine.org/issue"$i"_en.pdf" >> url.txt done 

3)最后,假设url.txt在当前工作目录中,运行:

 wget -i url.txt 

如果你想在其他地方保存下载,请在url.txt之后添加-P ~/MyDirectory

它确实有效 – 如果您尝试它,如果您不想全部下载,请输入ctrl c中止!