例如,我想下载每个美国州树的图像。我在以下位置找到阿拉巴马州的长叶松:
https://statesymbolsusa.org/sites/statesymbolsusa.org/files/primary-images/longleafpine.jpg
更一般地说,所有这些美国州树图像都存在于:
https://statesymbolsusa.org/sites/statesymbolsusa.org/files/primary-images/
现在,如果我可以直接访问这个 Web 目录,我就可以使用 DownloadThemAll 来下载所有这些图像。但我无法直接访问该 Web 目录。我只是收到“找不到页面”消息。
那么,我怎样才能从这个站点下载所有 50 张图片,而不必手动点击 50 个州中的每一个呢?
编辑:这只是我遇到的一般问题的一个小例子。因此,特定于上下文的解决方案(例如,转到其他站点,所有 50 幅图像都可直接下载)实际上并不适合我。
由于您无权访问该目录,因此无法很容易地知道其中图片的文件名。这为您创造了很多额外的工作。这意味着如果您无法获取所有文件名(不是最容易设置/用户友好的),您需要使用可以暴力破解文件的软件。使用类似的东西
dirbuster
可以暴力破解primary-images
目录中文件的名称。虽然重要的是要注意这是不赞成的。使用这样的软件和其他人的建议会给服务器带来大量额外的流量,因为您正在发送对页面的请求,无论它是否存在。这可以很容易地让您的 IP 被服务器管理员/防火墙阻止,以减慢其他人的服务速度,或者如果您发送大量邮件,则被识别为DOS 攻击。如果您知道自己在做什么并且有权光明磊落,请使用。
您最好的选择是单击所有文件,或者如果您可以获得所有文件的名称,您可以制作一个简单的
.txt
文件,每个文件的名称由新行分隔:你可以使用我为这个函数编写的一小段 Python 代码(在 GitHub 上下载):
这是它运行的屏幕截图:
如果这是您第一次使用 Python,请按照本指南安装并使用
cd
命令提示符中的命令与 Python 脚本位于同一目录中。例如,如果脚本在您的文档文件夹中,您将运行cd C:\Users\$User\Documents\
,然后运行python imgdl.py
,并按照提示进行操作。