![类似 Wget 的实用程序,用于下载 mysite.com/img/ 目录中的所有图像](https://linux22.com/image/1108729/%E7%B1%BB%E4%BC%BC%20Wget%20%E7%9A%84%E5%AE%9E%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%8C%E7%94%A8%E4%BA%8E%E4%B8%8B%E8%BD%BD%20mysite.com%2Fimg%2F%20%E7%9B%AE%E5%BD%95%E4%B8%AD%E7%9A%84%E6%89%80%E6%9C%89%E5%9B%BE%E5%83%8F.png)
我对 mysite.com/img/ 目录的访问被阻止了。
但是该目录中的所有图像都是以n.jpg
n 为第 n 个图像的形式出现的。
我的访问mysite.com/img/n.jpg
未被阻止
我有什么办法可以保存 1-500 张图片(mysite.com/img/1.jpg
到mysite.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
如果您不想下载所有内容,请输入中止!