今天看了个漫画网站,有几张图想存下来,发现 img 的 src 是 blob:https://www.xxxx.com/aaaa 这样的格式,直接在浏览器还打不开,network 看下 copy response 然后删除这部分 data:text/plain;base64, 成功转为图片了 我想知道的是,怎么用代码实现这一过程?怎么批量爬呢?这个 blob 好像反爬很猛的样子,不太懂啊 Blob, base64, img, plain
其实就是通过 xhr 、fetch 、ws 等方式从接口拿到图片的数据。 然后在前端使用 URL.createObjectURL 创建了 blob url ,交给 Image ,然后待 onload 后,再用 URL.revokeObjectURL 销毁了资源,所以当你单独打开的时候,就资源不存在了。
做爬虫,你都不用到这一步,这一步是因为,后端给的图片不能直接渲染(一般是加密了),需要前端获取到二进制内容后解密进行渲染,前端渲染内存里的二进制图片,就是用一楼说的这个方式。 而你做爬虫,只要找到它如何从后端获取数据(并解密)的地方就可以把数据存成文件了。