38 lines
1.5 KiB
Python
38 lines
1.5 KiB
Python
from playwright.sync_api import sync_playwright
|
|
import time, os
|
|
|
|
def run():
|
|
with sync_playwright() as p:
|
|
try:
|
|
browser = p.chromium.connect_over_cdp('http://127.0.0.1:9222')
|
|
page = browser.contexts[0].pages[0]
|
|
|
|
# Находим первую ссылку и кликаем
|
|
link = page.query_selector('a[href*="appeals/view/"]')
|
|
if link:
|
|
num = link.inner_text().strip()
|
|
print(f'Clicking appeal: {num}')
|
|
link.click()
|
|
|
|
# Ждем появления кнопки Скачать все
|
|
print('Waiting for Download All button...')
|
|
page.wait_for_selector('button:has-text("Скачать все")', timeout=60000)
|
|
|
|
# Кликаем и ждем загрузку
|
|
with page.expect_download(timeout=120000) as download_info:
|
|
page.get_by_text('Скачать все').first.click()
|
|
|
|
download = download_info.value
|
|
path = f'/app/downloads/harvested_file.zip'
|
|
download.save_as(path)
|
|
print(f'SUCCESS: Downloaded to {path}')
|
|
else:
|
|
print('No appeal links found on page!')
|
|
|
|
browser.close()
|
|
except Exception as e:
|
|
print(f'ERROR: {e}')
|
|
|
|
if __name__ == '__main__':
|
|
if not os.path.exists('/app/downloads'): os.makedirs('/app/downloads')
|
|
run()
|