网站图片怎么整站批量克隆?HTTrack下载整站HTML还带图片但只想要图片的话,用这5种方式按源站类型对号入座,省掉90%的无效文件
一个做电商独立站的朋友前阵子想换供应商,需要把竞品站上几百张产品图全扒下来做视觉对标。他第一反应是上HTTrack,把整站全量克隆到本地。结果跑了三个小时,下载了2.3GB文件,打开一看——HTML有4000多个,CSS和JS堆了600多个,图片才800多张。他真正要的东西只占下载量的不到30%。
这个场景其实特别普遍:你不需要整个网站,你只想要图片。但"整站克隆"和"只克隆图片"之间的差距,很多工具没有给一个直观的选项。于是有人用整站下载器跑了一堆垃圾文件回来,有人在浏览器里一张张右键另存为,还有人在插件里筛选到手软。
图片克隆这件事,关键不在"能不能下",而在能不能精准过滤掉不要的东西,保留目录结构,按原站分类输出。不同源站类型(静态站、动态渲染站、CDN分离站、图片站)对应的最佳方案完全不一样。
五条路径,按源站类型选
| 1 | HTTrack+过滤规则:静态站图片克隆最稳方案,配置一次反复用,保留完整目录结构 |
| 2 | wget图片专用参数:纯命令行,适合定时任务批量跑多站,服务端无人值守 |
| 3 | 浏览器插件(ImageAssistant/Fitkun):动态渲染站必备,先让浏览器把图加载出来再批量抓 |
| 4 | Python脚本定制:CDN分离站或需要反爬处理的站点,灵活度最高 |
| 5 | 专用图片爬虫软件(Imaget/PicHound):专业图片站、图库站,带AI分类和去重 |
一、HTTrack不是不能用,是你没调过滤规则
HTTrack是整站克隆领域绕不开的名字。开源、跨平台(Windows/Mac/Linux都有对应版本),支持断点续传、代理配置、Cookie注入。但它最大的槽点是默认下载所有文件——HTML、CSS、JS、字体、图片,来者不拒。
很少有人注意到HTTrack的"扫描规则"(Scan Rules)里可以设置文件类型过滤。这个功能藏得比较深,在"Set Options"→"Scan Rules"标签页里,你需要手动添加排除规则。比如只想下载图片,就把HTML、CSS、JS全部排除掉。
HTTrack图片专用过滤规则

# 排除所有非图片文件类型-*.html-*.htm-*.css-*.js-*.json-*.xml-*.txt-*.woff-*.woff2-*.ttf-*.eot-*.svg# 只保留图片格式(加号表示允许)+*.jpg+*.jpeg+*.png+*.gif+*.webp+*.avif+*.bmp+*.ico把上面的规则粘贴到Scan Rules里,HTTrack就只会下载图片文件,其他一律跳过。爬取深度建议设3-5层,太深容易爬到无关页面。
另一个实用技巧:在"Limits"里设置最大文件大小。比如只下载500KB以下的图片(通常是缩略图和展示图),超过的直接跳过,这样可以避免把高清原图也拉回来。反过来,如果你就要高清大图,可以设最小文件大小100KB,把图标、装饰图等小文件过滤掉。
HTTrack的硬伤:它处理不了JavaScript动态加载的图片。现在很多网站用懒加载(lazy loading)、IntersectionObserver、AJAX分页加载图片,HTTrack抓到的是原始HTML,图片URL可能根本没有出现在源码里。这种情况HTTrack完全抓不到——不是配置问题,是机制问题。动态渲染站请跳到第三节用浏览器插件。
二、wget一行命令搞定,适合批量跑和定时任务
如果你不想要GUI界面,或者在服务器上跑定时任务,wget是比HTTrack更轻量的选择。wget本身就支持递归下载,关键是参数组合要对。
核心思路:用 -A 参数限定只接受图片格式,用 -R 排除其他格式,两层过滤确保干净。
# 只下载图片,递归深度5层,保留目录结构wget -r -l 5 -nd -A jpg,jpeg,png,gif,webp,bmp \--wait=1 \--random-wait \--limit-rate=500k \-e robots=off \-U "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" \-P /output/images/ \https://example.com/几个参数值得解释一下:-nd 是不创建目录层级,所有图片平铺到一个文件夹里。如果你希望保留原站的目录结构(比如按年月/分类分文件夹),把 -nd 去掉就行。--wait=1 --random-wait 是让每次请求间隔1秒且随机浮动,避免触发反爬。--limit-rate=500k 限速500KB/s,别把对方服务器打崩了。
批量跑多站的脚本模板
#!/bin/bash# sites.txt 里每行一个URLwhile IFS= read -r url; dodomain=$(echo "$url" | sed 's|https\?://||' | sed 's|/.*||')mkdir -p "/output/$domain"wget -r -l 3 -nd -A jpg,jpeg,png,gif,webp \--wait=1.5 --random-wait \-e robots=off \-U "Mozilla/5.0" \-P "/output/$domain/" \"$url"echo "Done: $domain"done < sites.txt每个站点自动创建一个以域名命名的文件夹,跑完一个再跑下一个。配合cron定时执行,每天凌晨自动同步一批竞品站的图片更新。
wget的局限和HTTrack类似:只能抓取HTML源码里直接出现的图片URL。AJAX动态加载的、JS拼接的URL、CSS背景图里的图片,wget也抓不到。但对于WordPress、DedeCMS、帝国CMS这类传统CMS搭建的静态内容型网站,wget的覆盖率达到95%以上。
三、动态渲染站绕不开浏览器插件,ImageAssistant和Fitkun怎么选
前两类工具都基于"解析HTML源码→提取URL→下载"的逻辑。但2026年的网站,大量图片是靠JavaScript动态生成的。商品列表的无限滚动、瀑布流布局、图片懒加载(loading="lazy")、React/Vue渲染的SPA页面——这些场景下,图片URL根本不在HTML源码里。
浏览器插件的逻辑正好反过来:先让浏览器正常加载页面、渲染完成、图片全部显示出来,然后插件从浏览器内存里把已经加载的图片URL全量提取出来,再批量下载。这就解决了HTTrack和wget最大的盲区。
| 对比维度 | ImageAssistant | Fitkun(胖坤图片) | Fatkun图片批量下载 |
|---|---|---|---|
| 浏览器支持 | Chrome/Edge/Firefox | Chrome/Edge | Chrome/Edge |
| 动态渲染抓取 | ✅ 支持,需手动滚动触发 | ✅ 支持,自动滚动到底 | ✅ 支持 |
| 图片筛选 | 按宽高、类型、URL关键词 | 按宽高、类型、AI智能分类 | 按宽高、类型 |
| 去重能力 | MD5哈希去重 | 感知哈希(相似图去重) | URL去重 |
| 批量导出 | ZIP打包 / 单张选择 | ZIP打包 / 按文件夹分类 | ZIP打包 |
| 额外能力 | 嗅探网页所有媒体资源 | 图片编辑、以图搜图、AI抠图 | 基础功能 |
| 价格 | 完全免费 | 基础免费 / Pro付费 | 完全免费 |
ImageAssistant适合纯采集场景:打开页面→等加载完→点插件→筛选图片→批量下载,流程简洁。它有一个独特的"嗅探"能力,能抓取网页中用到的所有媒体文件,包括video、audio,不只是图片。
Fitkun更像一个图片全能工具箱。除了批量下载,还集成了图片压缩、格式转换、AI抠图、以图搜图等功能。如果你下载完图片还要做二次处理(比如去背景、统一尺寸、转WebP),Fitkun能一站式搞定,不用再开其他工具。
浏览器插件的三个局限
· 单次只能抓当前页面,不能自动翻页跨页采集。商品列表有50页?你得手动翻50次。
· 浏览器内存限制。一个页面加载了2000+张高清图,浏览器可能直接卡死或崩溃。
· 无法定时自动化。插件需要浏览器在前台运行,不能像wget那样写个cron后台跑。
四、Python脚本:CDN分离站和反爬站点的终极方案
前面三种方案有一个共同前提:图片URL能直接访问。但如果目标网站把图片放在独立CDN域名下、做了Referer校验、加了Token签名、甚至把图片Base64编码嵌在页面里,那前面的工具都可能失灵。
Python脚本的优势在于完全可控:你可以模拟浏览器请求头、处理Cookie/Session、解析JS生成的URL、绕过简单反爬。而且可以针对特定网站结构写定制化的提取逻辑。
import requestsfrom bs4 import BeautifulSoupimport osimport hashlibfrom urllib.parse import urljoindef clone_site_images(url, output_dir, min_size_kb=10):# Clone all images from a websiteos.makedirs(output_dir, exist_ok=True)seen = set()headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36','Referer': url,'Accept': 'image/avif,image/webp,image/*,*/*;q=0.8'}# 获取页面HTMLresp = requests.get(url, headers=headers, timeout=30)soup = BeautifulSoup(resp.text, 'html.parser')# 提取所有图片标签img_tags = soup.find_all('img')# 也检查background-image等CSS背景图bg_elements = soup.find_all(style=True)for img in img_tags:src = img.get('src') or img.get('data-src') or img.get('data-original')if not src:continuefull_url = urljoin(url, src)if full_url in seen:continueseen.add(full_url)try:img_data = requests.get(full_url, headers=headers, timeout=20).contentif len(img_data) < min_size_kb * 1024:continue# 用MD5做文件名,避免重名ext = full_url.split('?')[0].split('.')[-1][:4]if ext.lower() not in ['jpg','jpeg','png','gif','webp','avif']:ext = 'jpg'fname = hashlib.md5(img_data).hexdigest()[:12] + '.' + extwith open(os.path.join(output_dir, fname), 'wb') as f:f.write(img_data)print(f'[OK] {fname}')except Exception as e:print(f'[FAIL] {full_url}: {e}')print(f'Done. Total unique images: {len(seen)}, Downloaded: {len(os.listdir(output_dir))}')这个脚本做了几件通用工具做不到的事:同时读取src、data-src、data-original三个属性(覆盖了各种懒加载方案),用MD5做文件名天然去重,加最小文件大小过滤掉图标和装饰图。
CDN跨域图片
图片在 cdn.example.com 但页面在 www.example.com,HTTrack可能因跨域过滤跳过。Python脚本可以手动构造完整URL并携带正确Referer。
分页自动翻页
抓完第1页自动分析分页链接,遍历第2、3...N页。浏览器插件要手动翻页,Python一行for循环搞定。
Referer防盗链
图片请求必须带来源页面的Referer,否则返回403。Python脚本可以精确设置每次请求的Referer头。
Base64内嵌图片
图片以 base64,xxx 格式嵌在HTML里,没有URL。Python可以正则提取data:image前缀内容并解码保存。

但Python脚本也有代价:每个目标站可能要单独适配。不同网站的HTML结构、反爬策略、分页方式都不一样,很难一个脚本通吃所有站。如果你的目标站只有两三个,值得花半小时写适配逻辑;如果要克隆几十上百个不同结构的站,维护成本会很高。
五、专用图片爬虫软件:图库站和素材站的最佳选择
如果你的目标是专业的图库站、设计素材站、电商平台的产品图片库,前四种方案都只能做到"把图下载下来"。但这类场景往往还有更多需求:图片自动分类、相似图片去重、按分辨率筛选、批量加水印/压缩/格式转换。
专用图片爬虫软件就是为这类需求设计的。Imaget(全称Image Downloader)是一个代表——它不是整站下载工具,而是专门针对图片的深度采集软件。支持按关键词搜索并批量下载、自动翻页、感知哈希去重、按尺寸筛选。
| 软件 | 定位 | 核心能力 | 平台 | 价格 |
|---|---|---|---|---|
| Imaget | 图片深度采集 | 关键词搜索下载、自动翻页、AI分类、感知哈希去重 | Windows/Mac | 免费版有限制 / Pro $29.95 |
| PicHound | 图片爬虫+AI处理 | AI抠图、批量压缩、格式转换、水印添加 | Chrome插件 | 免费版 / Pro $9.9/月 |
| Cyotek WebCopy | 轻量整站克隆 | 整站下载但可过滤只保留图片,比HTTrack轻量 | Windows | 免费 |
| SiteSucker | Mac整站下载 | Mac原生,界面简洁,支持文件类型过滤 | Mac / iOS | $4.99 |
| Offline Explorer | 专业级整站克隆 | 速度最快、支持复杂规则、可导出项目 | Windows | $99.95起 |
这里特别说一下Cyotek WebCopy。它在Windows上是一个被低估的工具:比HTTrack轻得多(安装包只有几MB),但爬取效率和规则配置能力不输HTTrack。如果你只是偶尔需要克隆一两个站的图片,WebCopy比HTTrack上手更快。
Offline Explorer值不值这个价?
如果你只是偶尔克隆一两个站,不值。但如果你做站群运营、需要定期同步几十个竞品站的素材更新,它的项目管理和批量调度能力能省下大量手工操作时间。不过$99.95的起步价确实不便宜,大部分个人站长用HTTrack+Python组合就够了。
六、四种方案快速选型对照
前面说了这么多,不同方案之间交叉重叠的地方不少。按核心场景做一个最终对照表,方便直接对号入座:
| 你的场景 | 推荐方案 | 理由 | 替代方案 |
|---|---|---|---|
| 传统CMS站(WP/Dede/帝国),一次性克隆 | HTTrack+过滤规则 | 配置一次,保留目录结构,支持断点续传 | Cyotek WebCopy |
| 批量多站点定时同步,服务器端跑 | wget脚本+cron | 无GUI,轻量,一行命令搞定 | Python + APScheduler |
| SPA/动态渲染站(React/Vue/懒加载) | 浏览器插件 | 浏览器已渲染,插件直接提取已加载图片 | Puppeteer + Python |
| CDN分离+反爬+特殊登录态 | Python定制脚本 | 完全可控,可处理各种复杂情况 | Scrapy框架 |
| 图库/素材站,需要AI分类去重 | Imaget/PicHound | 专用软件,带AI后处理能力 | Python + OpenCV去重 |
| Mac用户,需要原生体验 | SiteSucker | Mac原生,$4.99买断,设置简单 | HTTrack(Mac版) |
七、下载完成后必须做的四件事
图片克隆到本地只是第一步。如果不做后续处理,几千张图堆在一个文件夹里,真正要用的时候根本找不到。这四件事建议在下载完成后立刻做:
MD5去重
第1步
同一张图可能被多个页面引用,URL不同但内容相同。用MD5哈希扫描全部文件,完全一样的只保留一份。推荐工具:dupeGuru、Anti-Twin。
按尺寸分文件夹
第2步
产品图、Banner图、图标、缩略图混在一起。按分辨率自动分拣:大图(>1200px)、中图(600-1200px)、小图(<600px)分别放到不同文件夹。
格式统一转WebP
第3步
从竞品站克隆的图可能是jpg/png/gif/webp混合格式。统一转WebP体积减少40%-60%,对站群加载速度提升明显。推荐:XnConvert批量转换。
版权风险排查
第4步
克隆的图片如果直接用到自己的商业站上,有侵权风险。产品图、带水印的图、人物肖像图尤其敏感。仅供设计参考和竞品分析,不要直接商用。
三个容易踩的坑
· CDN防盗链返回200但内容是占位图:有些CDN做了Referer校验,不带正确Referer虽然HTTP状态码是200,但返回的是一张1x1的透明占位图或"图片已过期"提示图。下载完检查一下文件大小,小于5KB的图片大概率是假的。
· 缩略图和原图URL只差一个后缀:很多网站用 image.jpg?w=300 表示缩略图、image.jpg 表示原图。工具可能同时下载了两种,导致大量重复。建议在URL里去掉 ? 后面的参数再做去重。
· IP被封:短时间内对同一个域名发起几百上千次请求,大概率触发WAF或频率限制。不管你用哪种工具,都建议设置请求间隔(1-3秒),爬取总量大的话分时段跑。
站群运营者经常面临一个场景:需要从几十个竞品站定期同步最新的产品图、Banner图、素材图。手工一个个站去克隆,光是打开工具、粘贴URL、等待下载就要耗掉大半天。这时候就需要一套系统化的方案:用wget脚本批量跑URL列表,下载后自动按域名分文件夹,然后做去重和格式统一处理。
在UC建站系统的内容中台里,素材管理模块本身就支持多站点的图片素材统一归集和分发。不同站点的图片自动按域名归档,支持按尺寸、格式、来源站筛选检索。配合批量格式转换和压缩功能,克隆回来的图片可以直接导入素材库,各站点按需调用,省掉了手动复制粘贴的环节。而且素材库会标记每张图的来源站和采集时间,后续如果源站更新了,可以定向重新采集,不用全量重新跑。
说到底,图片克隆这件事,工具本身不是瓶颈——现在的免费工具已经够好用了。真正的瓶颈在于下载回来之后怎么管理、怎么分发、怎么更新。单次克隆很简单,持续维护才考验效率。
如果你只是偶尔需要克隆一两个站的图片做设计参考,HTTrack配好过滤规则就够了,免费且可靠。如果你做的是站群运营,需要长期跟踪几十个竞品站的素材变化,那值得花点时间搭一套wget+Python的自动化流程——一次投入,长期省事。至于那些付费的专业软件,除非你的需求确实到了那个量级(比如每天处理上万张图片的素材团队),否则免费方案的组合完全够用。
