wget或curl配合脚本可批量下载网站图片,关键在于选对工具、参数及规避反爬;wget适合静态站递归下载,curl+解析工具更适js渲染页面;需注意robots.txt、请求频率、User-Agent及https证书等问题。

用 wget 或 curl + 简单脚本 就能批量下载网站图片,关键是选对工具、加好参数、避开反爬限制。
用 wget 递归下载所有图片(最常用)
wget 支持按后缀过滤和深度限制,适合静态页面为主的网站。
- 基础命令:获取当前页及子目录下所有 jpg/png/gif
wget -r -P ./images -A "*.jpg,*.jpeg,*.png,*.gif" -nH --no-parent https://example.com/
- -r:开启递归下载
- -P ./images:保存到本地 images 文件夹
- -A:只接受指定后缀的文件
- –no-parent:不跳到上级目录,防止越界抓取
- -nH:不创建以主机名命名的子目录
如果网站图片在独立域名(如 cdn.example.com),加上 -H 允许跨域,再用 –domains=cdn.example.com 限定范围。
先提取图片链接再下载(更灵活、适合复杂结构)
当网页用 JS 渲染、或图片地址藏在 data-src、背景样式里时,wget 默认抓不到。这时先用工具解析 html 提取真实图片 URL。
- 用 curl + grep + sed 快速提取 img src:
curl -s https://example.com | grep -o 'src="[^"]*"' | sed 's/src="//' | sed 's/"$//' | grep -E '.(jpg|png|gif)$' | xargs -I {} wget -P ./images {}
- 更可靠可用 python + requests + beautifulsoup 解析 DOM,处理相对路径、懒加载等
- 注意加 User-Agent 头,避免被 403 拒绝(wget 可加
--user-agent="Mozilla/5.0...")
注意事项和避坑提醒
不是所有网站都欢迎爬取,操作前请确认 robots.txt 和网站条款。
- 加 –random-wait 或 –wait=1 控制请求频率,别给服务器添堵
- 有些图片是带参数的动态 URL(如 ?v=123),wget 默认会保留参数;如需去参,得用脚本预处理
- HTTPS 网站若证书异常,wget 加 –no-check-certificate(仅测试用,生产环境慎用)
- 下载中断可加 -c 续传,配合 -N 跳过已下载文件
基本上就这些。小站直接 wget 一行搞定;大站或前端复杂的,建议先抽链接再下,可控性更强。