This commit is contained in:
2025-10-18 15:21:32 +02:00
parent 7332ee0734
commit 3038098f4e
6 changed files with 369 additions and 1 deletions

41
83_capture_graphql.py Normal file
View File

@@ -0,0 +1,41 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from playwright.sync_api import sync_playwright
import json, os, time
STATE_FILE = "medevio_storage.json"
GRAPHQL_LOG = f"graphql_capture_{int(time.time())}.jsonl"
with sync_playwright() as pw:
browser = pw.chromium.launch(headless=False, slow_mo=200)
context = browser.new_context(storage_state=STATE_FILE)
page = context.new_page()
def log_graphql(req):
if "graphql" in req.url and req.method == "POST":
try:
body = req.post_data or ""
data = json.loads(body)
with open(GRAPHQL_LOG, "a", encoding="utf-8") as f:
f.write(json.dumps(data, ensure_ascii=False) + "\n")
print(f"📡 {data.get('operationName')} saved")
except Exception:
pass
page.on("request", log_graphql)
print("🔗 Opening Medevio main page...")
page.goto("https://my.medevio.cz/mudr-buzalkova/klinika/kalendar/agenda-dne/"
"?kalendar=144c4e12-347c-49ca-9ec0-8ca965a4470d", wait_until="networkidle")
print("\n👉 Click various items in Medevio (calendar, reservations, requests, etc.).")
print(" Every GraphQL call will be saved to", GRAPHQL_LOG)
print(" Press Ctrl+C or close the browser when done.\n")
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
browser.close()
print(f"\n✅ Finished — GraphQL calls saved to {GRAPHQL_LOG}")