#!/usr/bin/env python3 """ Quick script to dump API responses for debugging """ import json from modules.api_interceptor import GoogleMapsAPIInterceptor from seleniumbase import SB url = "https://www.google.com/maps/place/Soho+Club/data=!4m7!3m6!1s0x46dd947294b213bf:0x864c7a232527adb4!8m2!3d54.67869!4d25.2667181!16s%2Fg%2F1thhj5ml!19sChIJvxOylHKU3UYRtK0nJSN6TIY?authuser=0&hl=es&rclk=1" with SB(uc=True, headless=False) as sb: # Set up interceptor BEFORE loading page interceptor = GoogleMapsAPIInterceptor(sb.driver) sb.open(url) sb.sleep(2) # Inject interceptor early interceptor.inject_response_interceptor() sb.sleep(2) # Click reviews tab try: sb.click('.LRkQ2:contains("ReseƱas")', timeout=5) except: try: sb.click('.LRkQ2:contains("Reviews")', timeout=5) except: pass print("Waiting for reviews to load...") sb.sleep(5) # Scroll to trigger more requests print("Scrolling to load more...") for i in range(5): sb.execute_script("window.scrollBy(0, 800)") sb.sleep(2) print(f" Scroll {i+1}/5...") print("\nCollecting responses...") # Get responses responses = interceptor.get_intercepted_responses() print(f"\nCaptured {len(responses)} responses") # Dump to files for i, resp in enumerate(responses): filename = f"api_response_{i}.json" with open(filename, 'w', encoding='utf-8') as f: json.dump(resp, f, indent=2, ensure_ascii=False) print(f"Saved: {filename} ({len(resp.get('body', ''))} bytes)") # Also save just the body for easier viewing body_file = f"api_response_{i}_body.txt" with open(body_file, 'w', encoding='utf-8') as f: f.write(resp.get('body', '')) print(f"Saved body: {body_file}") print("\nDone! Check api_response_*.json files")