类似 Wget 的实用程序,用于下载 mysite.com/img/ 目录中的所有图像

类似 Wget 的实用程序,用于下载 mysite.com/img/ 目录中的所有图像

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

但是该目录中的所有图像都是以n.jpgn 为第 n 个图像的形式出现的。

我的访问mysite.com/img/n.jpg未被阻止

我有什么办法可以保存 1-500 张图片(mysite.com/img/1.jpgmysite.com/img/500.jpg)吗?

我正在使用 ubuntu 11.10

答案1

最简单的解决方案可能是使用 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 中运行。)

答案2

还有另一种方法可以做到这一点wget,我已经在一个网站上成功使用了,您应该能够修改下面的说明以用于其他网站。它涉及生成一个 URL 列表,然后将该列表提供给wget

1)例如,假设你想下载所有 63 本 pdf 杂志《全圆》杂志(Ubuntu 杂志),但您的下载管理器无法一次性下载所有内容。因此,请找到关联第一个pdf文件并快速检查其他杂志链接是否采用相同的url格式。

2) 有了第 1 部分中的知识,我们现在可以使用脚本来生成 URL。下面的脚本运行一个 Until 循环,我已经对其进行了修改(感谢它的创建者)。您可以通过将杂志数量放在部分中until [ $i = 63 ]并在后面放置正确的 URL 来修改此脚本echo,并确保"$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  

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

它确实有效 - 如果您尝试它,ctrl c如果您不想下载所有内容,请输入中止!

相关内容