37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
from playwright.sync_api import sync_playwright
|
|
import json, time
|
|
|
|
def run():
|
|
try:
|
|
with sync_playwright() as p:
|
|
# Пытаемся зайти в тот же профиль.
|
|
# Если браузер УЖЕ открыт, Playwright может выдать ошибку или открыть второе окно.
|
|
browser = p.chromium.launch_persistent_context(
|
|
user_data_dir='/app/browser_context',
|
|
headless=True
|
|
)
|
|
page = browser.pages[0]
|
|
|
|
# Ждем прогрузки, если вдруг открылась новая пустая страница
|
|
if 'about:blank' in page.url:
|
|
page.goto('https://my.dom.gosuslugi.ru/citizen-cabinet/#!/Pafo/Home')
|
|
page.wait_for_load_state('networkidle')
|
|
|
|
print(f'STATUS: URL is {page.url}')
|
|
page.screenshot(path='/app/current_state.png', full_page=True)
|
|
|
|
# Ищем конкретные ссылки
|
|
links = []
|
|
for a in page.query_selector_all('a'):
|
|
text = a.inner_text().strip()
|
|
if text: links.append(text)
|
|
|
|
with open('/app/links.json', 'w') as f:
|
|
json.dump(links, f)
|
|
|
|
browser.close()
|
|
except Exception as e:
|
|
print(f'ERROR: {str(e)}')
|
|
|
|
if __name__ == '__main__':
|
|
run()
|