import asyncio import json import websockets import requests async def read_amplitude_storage(): pages = requests.get("http://localhost:9222/json/list").json() ws_url = pages[0]["webSocketDebuggerUrl"] async with websockets.connect(ws_url, max_size=50*1024*1024) as ws: js = """ (() => { const data = {}; for (let i = 0; i < localStorage.length; i++) { const k = localStorage.key(i); if (k.includes('amplitude')) { try { data[k] = JSON.parse(localStorage.getItem(k)); } catch(e) { data[k] = localStorage.getItem(k); } } } return data; })() """ await ws.send(json.dumps({ "id": 1, "method": "Runtime.evaluate", "params": { "expression": js, "returnByValue": True } })) res = json.loads(await ws.recv()) events_data = res.get("result", {}).get("result", {}).get("value", {}) print(json.dumps(events_data, indent=2, ensure_ascii=False)) if __name__ == "__main__": asyncio.run(read_amplitude_storage())