下载 Chrome 开发者工具「网络」面板中的文件

日期:
分类: 页面仔的自我修养
标签: Chrome

Chrome 开发者工具的「网络」面板可以查看所有的网络请求。fetch 发送的请求不会出现在「源代码」面板中,只能通过「网络」里下载。讨厌的是,Chrome 没有提供在列表内直接下载对应的响应的功能,双击对应的请求仍然只会在新标签页重新发送请求,而不是下载已抓取的资源。若远程服务器上的资源已失效,则无法成功下载。虽然可以直接通过「响应」查看内容,但若请求是 binary,则可能包含非法的 Unicode 位点,无法通过复制粘贴将内容正确地保存到本地。

此时,可以通过右键任意一请求,点选菜单最下方「以 HAR 格式保存所有内容」或点击如下所示的下载按钮保存 HAR。

保存 HAR
保存 HAR

HAR 实质是 JSON。通过文本编辑器打开下载的 HAR 文件,依据「标头」-「响应标头」中的 Content-Length 查找到对应的请求内容,即可在 content > text 中看到 Base64 编码的 response 内容。

此时我们可以安心地将内容复制出来,解码即可。推荐使用命令行工具。

import base64
from codecs import open
 
with open("b64.txt", "r") as f:
    content = base64.b64decode(f.read())
print(content)
 
with open("out.txt", "wb") as f:
    f.write(content)

注意若用 Python 处理,写入文件的内容不一定是合法字符串,故 open 的参数需要为 wb,否则会有 TypeError: write() argument must be str, not bytes

本作品采用 知识共享署名-非商业性使用 4.0 国际许可协议CC BY-NC 4.0 International) 进行许可。阁下可自由地共享(复制、发行)和演绎(修改、转换或二次创作)本作品,唯须遵守许可协议条款。

评论

评论将在审核后显示,阁下可以在本博客的 Github 仓库的 拉取请求列表 中查看。
本表单无 JavaScript,请勿重复提交。