import re import time from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC URL = "https://www.smn.gob.ar/" OUTPUT_FILE = "token.txt" def extract_token_from_source(source: str): m = re.search(r"localStorage\.setItem\(\s*['\"]token['\"]\s*,\s*['\"]([^'\"]+)['\"]\s*\)", source) return m.group(1) if m else None chrome_options = Options() chrome_options.add_argument("--headless=new") chrome_options.add_argument("--no-sandbox") chrome_options.add_argument("--disable-dev-shm-usage") chrome_options.add_argument("--disable-gpu") chrome_options.add_argument("--disable-blink-features=AutomationControlled") chrome_options.add_argument("--window-size=1920,1080") chrome_options.add_argument("--user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) " "AppleWebKit/537.36 (KHTML, like Gecko) " "Chrome/118.0.5993.90 Safari/537.36") driver = webdriver.Chrome(options=chrome_options) try: print(f"Loading URL {URL}") driver.get(URL) time.sleep(8) try: WebDriverWait(driver, 20).until( EC.presence_of_element_located((By.TAG_NAME, "body")) ) except Exception: pass try: token = driver.execute_script("return window.localStorage.getItem('token');") except Exception: token = None if not token: token = extract_token_from_source(driver.page_source) if token: print(f"\n[+] Token found:\n{token}\n") with open(OUTPUT_FILE, "w", encoding="utf-8") as f: f.write(token) print(f"[+] Saved to {OUTPUT_FILE}") else: print("[!] No token found in localStorage or page source.") with open("page_debug.html", "w", encoding="utf-8") as f: f.write(driver.page_source) print("[i] Saved full page source to page_debug.html for manual check.") finally: driver.quit()