domovoy_bot/scraper_gis/mcp_test_cabinet.py

54 lines
2.2 KiB
Python

from playwright.sync_api import sync_playwright
import time
import json
print("🚀 Запускаем Headless-агента для создания карты личного кабинета...")
with sync_playwright() as p:
# Запускаем уже в фоновом (headless) режиме, так как куки сохранены!
browser = p.chromium.launch_persistent_context(
user_data_dir="/app/browser_context",
headless=True,
args=[
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-dev-shm-usage',
'--disable-gpu',
'--window-size=1280,1024'
]
)
page = browser.pages[0]
print("🌐 Переходим на главную страницу ЛК (dom.gosuslugi.ru)...")
page.goto("https://dom.gosuslugi.ru/#!/main")
# Ждем 5 секунд, чтобы все скрипты и данные кабинета прогрузились
page.wait_for_timeout(5000)
print("📸 Делаем полноразмерный скриншот кабинета...")
page.screenshot(path="/app/cabinet_home_map.png", full_page=True)
print("🗺️ Составляем карту ссылок (парсим меню)...")
# Выполняем JS прямо на странице, чтобы вытащить структуру
links = page.evaluate('''() => {
let menu_links = [];
// Собираем все осмысленные ссылки
document.querySelectorAll('a').forEach(a => {
let text = a.innerText.trim();
if (a.href && text.length > 0 && a.href.includes('dom.gosuslugi.ru')) {
menu_links.push({text: text, href: a.href});
}
});
return menu_links;
}''')
# Сохраняем карту ссылок в JSON
with open("/app/cabinet_links_map.json", "w", encoding="utf-8") as f:
json.dump(links, f, ensure_ascii=False, indent=2)
print(f"✅ Готово! Найдено уникальных ссылок: {len(links)}")
print("💾 Скриншот: cabinet_home_map.png")
print("💾 Карта: cabinet_links_map.json")
browser.close()