63 lines
2.0 KiB
Python
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()
|