假设有一些 URL:example.com/folder1。当使用 Chrome 和 Firefox 等浏览器访问时,这个 URL 并不是我们习惯的网站,而是一个包含要下载的文件的页面(我想说的是 HTTP 中的文件服务器,我对计算机网络几乎一无所知)。现在,假设有数千个不同格式的文件,有些是 PNG,有些是 JPG,有些是 MP4,有些是 TXT 等。
比如说,我想下载那里的所有 PNG 图像。我可以使用wget example.com/folder1/name-of-image-1.png ; wget example.com/folder1/name-of-image-2.png ; [...] wget example.com/folder1/name-of-image-n.png
,但这是一项漫长的工作,因为图像名称不遵循模式,并且自动化这些事情会非常有趣。我寻找像这样的命令wget --download-all-from-format=png example.com/folder1
。这个选项 --download-all-from-format=png 不存在,但我想出了它来向您展示这个想法。解决方案可能是 wget、curl 或其他命令行程序。
在互联网上搜索,我得到了一些命令:wget -nd -r -l 2 -accept-regex '.png' example.com/folder1
和wget -nd -r -l 2 -A.png example.com/folder1
,但它们对我不起作用。正在下载奇怪的文件,如下图所示:
我的猜测是,我看到的两个命令可能对于下载网站内容很有用,但是,就我而言,所需的 URL 不是我们理解的网站,而是互联网上的文件服务器(当我在我的浏览器中,我有一个类似于我们输入 file:///home/user 时得到的列表,这就是我没有成功的原因。该服务器似乎是 HTTP,而不是 FTP。
谢谢。
真挚地,
[更新]我找到了解决方案。这不是我所期待的,但它确实有效。我可以使用 wget 下载 example.com/folder1,无需额外选项,然后过滤下载的文件,获取所有图像路径。然后我制作一个 shell 脚本,命令计算机单独下载我得到的每个路径,我可以在所有图像路径列表中使用 for 循环。