快速下载数据的方法:来自chrome开发者工具网络窗口的图像?

问题描述 投票:0回答:3

我正在寻找一种快速方法来下载我可以在开发人员工具的网络选项卡中看到的所有图像?它们以 data:image/png;base64 链接的形式出现。您可以将它们单独打开到一个新选项卡中,然后从那里手动保存它们,但这似乎是唯一的方法。保存整个网页或 .har 文件似乎无法捕获它们。我尝试过的任何插件都没有剂量。 :/

有没有快速的方法来拯救他们?因为手动执行此操作将花费一生的时间。

最诚挚的问候, 马特

javascript image google-chrome developer-tools
3个回答
2
投票

我发现实现我正在寻找的最简单的方法是:按图像过滤,在网络选项卡中选择结果之一,右键单击->复制->将所有内容复制为 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))

1
投票

document
加载图像后,您可以下载内容为
.har
DevTools
文件,然后将
JSON
过滤为 JavaScript 对象,以从
data URL
"mimeType"
 创建 
"encoding"
's 
"text"
 文件的 
response.content
 属性的 
"entries"
 数组中对象的 
"log"
 属性。

给定链接的

.har

 文件,结果将是一个 
.har
 为 17
的数组

.length

jsfiddle

https://jsfiddle.net/j0grexnv/


0
投票
我的 github 存储库上有一个脚本,可以从 chrome devtool 下载数据:image base64

https://github.com/rifqiabd/base64extract

© www.soinside.com 2019 - 2024. All rights reserved.