OpenSMN/tokenext.py
2025-11-07 19:35:35 +00:00

63 lines
2.0 KiB
Python

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()