我正在寻找一种快速方法来下载我可以在开发人员工具的网络选项卡中看到的所有图像?它们以 data:image/png;base64 链接的形式出现。您可以将它们单独打开到一个新选项卡中,然后从那里手动保存它们,但这似乎是唯一的方法。保存整个网页或 .har 文件似乎无法捕获它们。我尝试过的任何插件都没有剂量。 :/
有没有快速的方法来拯救他们?因为手动执行此操作将花费一生的时间。
最诚挚的问候, 马特
我发现实现我正在寻找的最简单的方法是:按图像过滤,在网络选项卡中选择结果之一,右键单击->复制->将所有内容复制为 CURL(cmd)。这将为您提供所有资源的完整列表,然后您可以刮出每个图像的数据并将其转换为带有脚本的文件,这是我为此编写的脚本:
每个资源都保存为新行,如下所示:
curl "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAbklEQVQoU42PsQ3CQAADzxPAKGECRJmO9qeAEWAbOkpC9ywQVoEFOPRCNCgCXNon2Q5AOV/X6ibQAXOhYvaHflHTQvTYwE9pVimnsRKWUwBySRlGJ8OXefsKiPc/Kn6NfN/k4dbYhczaOMmu3XwCriA4HJ2kao8AAAAASUVORK5CYII=" --compressed &
脚本:
import base64
fname = "starvedump.txt"
dataToBeFound = "data:image/png;base64,"
imgext = ".png"
imgpfx = "img/img_"
with open(fname) as f:
d = f.readlines()
d[:] = [x for x in d if dataToBeFound in x]
d = [x.replace('curl "' + dataToBeFound, '') for x in d]
d = [x.replace("\" --compressed &\n", "") for x in d]
for i, x in enumerate(d) :
with open(imgpfx + str(i) + imgext, "wb") as fh:
fh.write(base64.b64decode(x))