domovoy_bot/scraper_gis/harvest_simple.py

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