如何在不关闭Firefox的情况下通过命令行访问其本地存储?
无需关闭Firefox即可访问本地存储的方法
针对Debian上的Firefox ESR,有两种可行方案实现不关闭浏览器时通过命令行读取网站本地存储:
方案1:利用Firefox远程调试协议
这是最直接的命令行方案,步骤如下:
开启Firefox远程调试
- 若Firefox未启动,用以下命令启动并开启调试端口:
firefox-esr --remote-debugging-port=9222 - 若Firefox已运行,手动修改配置:打开
about:config,设置两项参数:devtools.debugger.remote-enabled→truedevtools.debugger.prompt-connection→false(仅限本地使用,避免安全风险)
- 若Firefox未启动,用以下命令启动并开启调试端口:
获取目标网站的调试连接地址
用curl获取当前可调试的页面信息:curl http://localhost:9222/json在返回的JSON结果中,找到目标网站对应的
webSocketDebuggerUrl字段(格式类似ws://localhost:9222/devtools/page/abc123)。通过WebSocket读取localStorage
先安装websocat(Debian仓库可直接获取):apt install websocat连接到目标WebSocket地址,发送调试命令获取指定键的本地存储值:
echo '{"id":1,"method":"Runtime.evaluate","params":{"expression":"JSON.stringify(localStorage.getItem(\"你的目标键名\"))"}}' | websocat ws://localhost:9222/devtools/page/abc123返回的JSON中,
result.value字段即为目标本地存储值。
方案2:自定义WebExtension扩展
如果需要长期自动化操作,可编写极简扩展:
- 让扩展监听命令行参数或本地文件触发事件,读取目标网站的localStorage值,输出到标准输出或指定文件。
- 安装扩展后,通过命令行调用Firefox的
-jsconsole或扩展触发逻辑,直接获取值。 - 该方式无需开启远程调试,安全性更高,但需要基础前端开发能力。
注意事项
- 远程调试模式仅限本地使用,公共网络环境下请勿开启,使用后记得将
devtools.debugger.remote-enabled改回false。 - 若配合xdotools自动化操作,可将上述命令整合到脚本中,等待页面加载完成后执行读取逻辑。
内容的提问来源于stack exchange,提问作者Kafka4PresidentNow
相关产品推荐
相关产品推荐

