如何使用wget批量下载无索引404目录下的多张图片?
解决方法
因为目标服务器没有开启目录索引功能,直接用wget -r爬取目录会返回404,但单张图片的URL有明显规律(三位数字命名,如001.png),可以通过构造批量URL的方式下载:
方法1:Bash循环批量下载
利用循环生成带前导零的数字文件名,拼接成完整URL后下载。假设图片编号范围是001到100(可根据实际情况调整范围):
for i in {1..100}; do wget "https://pkmnbinder.com/images/PAL/$(printf "%03d" $i).png" done
printf "%03d" $i用于将数字格式化为三位,自动补前导零(比如1→001,10→010)。
方法2:仅下载存在的图片
如果不确定编号范围,或者担心部分编号对应的图片不存在,可以先通过--spider参数检测URL有效性,只下载实际存在的文件:
for i in {1..200}; do target_url="https://pkmnbinder.com/images/PAL/$(printf "%03d" $i).png" wget --spider "$target_url" && wget "$target_url" done
--spider模式下wget只会检查URL是否存在,不会下载内容;只有检测通过时才执行真正的下载命令。
补充说明
如果图片编号不是连续序列,你需要先从网站的其他页面源码中提取完整的图片URL列表,再用wget -i批量下载。但从你提供的单张URL来看,三位数字的连续命名规律是最直接的解决方案。
内容的提问来源于stack exchange,提问作者Huichelaar
相关产品推荐
相关产品推荐

