2010-06-28 168 views
4

我需要在我的脚本中编写一行代码以从abc.com/Image/images/,trying wget命令下载一个目录(包含约10张图片),如下所示:使用wget下载图片文件夹

wget的-e机器人=关-r -l1 --no父母-A.gif http://abc.com/Image/images/ OR 的wget -A “* .gif注意” http://abc.com/Image/images/

,但它给错误为:

HTTP请求已发送,正在等待响应... 403 Forbidden 11:25:12错误403:禁止。 删除abc.com/Images/images/index.html,因为它应该被拒绝。 取消关联:没有这样的文件或目录

我已经使用wget命令从同一个URL下载一个文件,它工作正常,但在目录失败的情况下。

任何人都可以在这里很快帮到我吗?

回答

4

如果您知道名称(如果远程目录不是“打开”且内容无法列出),请考虑将它们放入一个文件并使用forwhile(在bash或PowerShell中或你有什么)或类似的;如果名称遵循一个“模式”,可以考虑使用curl相反,有了它,你可以像

curl http://asdf.com/what/ever/image/img[00-99].gif -o img#1.gif 

东西下载使用名称img00.gif,img01.gif等图像。

1

我想你不能列出网络服务器上的目录。 wget正在获取有关您想从其网页上下载的目录内容的信息。如果不允许(403:禁止),那么wget无法下载文件。当然,我可能是错的

+0

但如果我在URL中指定图像名称为:http://abc.com/Image/images/abc.gif那么我可以下载这些图像和相同的文件夹中的其他图像。 但是,当试图获取整个文件夹时,它给出了错误。 – ha22109 2010-06-28 10:05:07

+1

确实。你看,当你给一个直接的URL作为参数时,那么wget拥有下载该文件所需的所有信息。但目录名称不提供有关其内容的信息。所以,当你传递wget一个目录名称时,它会请求该目录(就像它是一个文件一样)。当从Web服务器请求目录时,如果没有index.html(或其他索引文件),则Web服务器会尝试提供该目录的列表。由于这是不允许在这个网络服务器上,wget没有得到一个列表,并不知道要下载什么。 – Shade 2010-06-28 11:54:22

0

这是不可能的。

wget无法知道远程服务器上存在哪些文件。

相反,如果服务器启用了目录浏览功能,或者图像链接在某处,则可以爬取其他页面。