使用 wget 命令批量下载网站目录文件
在 Linux 或 macOS 系统中,wget 是一个功能强大的命令行下载工具,支持递归下载、断点续传、批量下载等多种功能。本文将介绍如何使用 wget 命令批量下载网站指定目录下的文件。
基本批量下载命令
要批量下载 http://demo.abc.com/path/to/file/ 目录下的所有文件,可以使用以下命令:
wget -nd -r -l1 --no-parent http://demo.abc.com/path/to/file/
参数说明:
-nd:不创建目录结构,所有文件下载到当前目录。-r:递归下载。-l1:递归深度为 1,即只下载当前目录下的文件,不进入子目录。--no-parent:不下载父目录中的文件。
按文件后缀名筛选下载
如果你只想下载特定类型的文件,例如该目录下的所有 .jpg 和 .bmp 图片,可以使用 -A 参数指定接受的文件模式:
wget -nd -r -l1 --no-parent -A.jpg -A.bmp http://demo.abc.com/path/to/file/
注意:-A 参数可以多次使用,也可以使用逗号分隔多个模式,如 -A.jpg,.bmp。
高级下载选项与排除规则
以下命令演示了更复杂的场景:下载网站目录下除 .html 文件外的所有内容,并忽略 robots.txt 限制:
wget -c -r -np -k -L --reject=html http://demo.abc.com/path/to/file/ -e robots=off
参数说明:
-c:断点续传。-np:等同于--no-parent。-k:转换链接,使下载的 HTML 文件中的链接指向本地文件。-L:跟随相对链接。--reject=html:拒绝下载.html文件。-e robots=off:忽略网站的robots.txt规则(请谨慎使用,尊重网站规则)。
注意事项与说明
- 尊重版权与使用条款:批量下载前,请确保你有权下载和使用目标文件,并遵守网站的
robots.txt协议和服务条款。 - 伪静态路径:如果目标网站使用了 URL 重写(伪静态),
wget可能无法正确解析文件路径。在这种情况下,建议先检查网站的实际文件结构,或尝试使用--spider参数测试链接有效性。 - 网络负载:批量下载会对目标服务器造成负载,请合理控制并发和下载速度,避免对目标网站造成影响。
通过灵活组合 wget 的参数,你可以高效地完成各种批量下载任务。建议在实际操作前,先使用 --dry-run 参数进行模拟运行,以确认命令行为符合预期。