如何从网页源代码中找到图片

右键点击网页,网页选择“查看页面源代码”,源代按Ctrl+F搜索“这是图片最笨也最直接的方法。但真正的网页老手不会这么干——他们直接按F12打开开发者工具,切到Network面板,源代刷新页面,码中然后看着几十个请求列表里那些jpg、图片png、网页webp后缀的源代文件名。图片就在那儿躺着,码中连路径都给你列得清清楚楚。图片

我去年帮朋友扒一个摄影网站的网页图,那网站做得挺绝,源代图片全用canvas画出来,码中源代码里压根没有img标签。但Network面板一开,照样能看到它后台请求了原始图片文件。所以说,源代码里找图片,本质上是找“图片的引用方式”,而不是找图片本身。最核心的规律就一条:图片要么写在HTML里,要么通过CSS加载,要么被JavaScript动态插入——但最终浏览器都得发HTTP请求去拿文件。

具体到HTML源码,你会看到类似<img src="photo.jpg">这样的标签。src属性就是图片地址。有时候是相对路径,比如images/logo.png,那你就得拼上当前页面的域名才能访问。有时候是绝对路径,直接带http://开头,那就省事了,复制到浏览器就能看。还有一种情况是srcset属性,响应式图片用的,里面会有多个尺寸的候选地址,挑一个你觉得够清晰的就行。

CSS里的背景图片藏得更深。源码里搜“background”或者“url(”,能找到类似background-image: url('bg.jpg')的规则。这种图片在源码里不显眼,但搜“url(”基本能一网打尽。注意有些CSS是写在外部样式表文件里的,你得去Sources面板里找到那个.css文件再搜。

JavaScript动态生成的图片最烦人。源码里看不到,你得在Console里执行document.querySelectorAll('img'),把所有img元素列出来,然后挨个看src属性。更骚的操作是直接监听Network面板里的Img请求,只要页面一加载,所有图片文件都会出现在那里——这招对任何网页都有效,不管它用什么技术栈。

有个细节容易坑新手:有些图片是base64编码直接嵌在HTML里的,形如<img src="data:image/jpeg;base64,/9j/4AAQ...">。这种你没法直接下载成文件,但可以右键图片另存为。在源码里看到一长串乱码一样的字符,别慌,那就是图片本身,只不过被编码成了文本。

说个实用技巧。如果你想要某张背景图,但它在CSS里定义了多个背景层——像background: url(a.png) no-repeat, url(b.jpg) center/cover这种——注意逗号分隔,每个url都是独立文件。别只复制第一个就完事。

最后提醒一句,扒图归扒图,别侵权。个人学习用没人管你,但要是商用或者批量抓取,最好先看看网站的robots.txt和版权声明。我见过有人为了省几块钱会员费,把人家付费素材站的图全爬下来做自己项目,结果收到律师函——那滋味可不好受。

对了,还有个野路子。如果图片是懒加载的,滚动页面才加载,那Network面板里一开始可能看不到。这时候你直接往下滚动,或者用开发者工具的模拟手机模式,把页面高度拉长,图片就会一个个蹦出来。等所有图都加载完了,再回Network面板看,保证都在列表里躺着。