所以我想从网络服务器下载所有图片,特别是 jpeg。我运行的命令看起来合法,我知道网站上有 jpeg。例如
wget -r -PC:/ -A.jpghttp://somesitewithjpegs.com
据我了解,此命令将以递归方式扫描整个服务器,只尽职尽责地搜索 jpeg 图像,然后将这些图像下载到我的 C:/ 驱动器。出于某种原因,这不起作用。
查看源代码后,我发现图像实际上并未直接嵌入到页面中,而是托管在服务器上的另一个目录中。这是 wget 无法下载这些图像的原因吗?
答案1
回答我自己的问题,wget 确实只能跟踪链接并直接下载文件。鉴于大多数图像都链接到不支持目录列表或有限制的目录,wget 无法解析该目录的内容。
一个很好的例子是,一个 wordpress 网站将图片存储在 wp-content 文件夹下。尝试遍历此文件夹会产生 403 禁止错误。尽管我们可以在浏览器中将此图片视为链接图片,但 wget 无法访问它,因为该图片存储在无法直接访问的目录中。
如果我遗漏了细节或者没有正确解释过程,有人可以补充这个答案。
答案2
这就是 wget 无法下载这些图像的原因吗?
答 :也许 / 很有可能。
尝试添加这些选项:
-l1 -H
这-H告诉应用程序跨域,这意味着它应该跟随指向网站外部的链接(也许图像是由不同的服务器提供的).还有-l1 意味着只深入一级:也就是说,不要点击链接网站上的链接。这样,您可能能够从托管图像文件的其他服务器下载内容。
irc,在镜像完整的 wordpress 网站时,您可以从 wp-content 文件夹访问图像。