foxygit / RPA-Remisser Log in
commits tags

/rpa/discover.py · 1.73 KB

raw
"""Hjälpverktyg för att inspektera den inloggade sidans faktiska struktur.

Körs separat (python -m rpa.discover) eftersom selectors i scraper.py
bygger på gissad textstruktur. Detta skript loggar in (manuellt,
BankID) och låter dig sedan, för varje sida du manuellt navigerar till,
trycka Enter i terminalen för att spara en HTML-dump + skärmdump av aktuell
sida i data/discover/. Använd dumparna för att hitta exakt länktext/selectors
och uppdatera scraper.list_egenremisser.
"""

from datetime import datetime

from playwright.sync_api import sync_playwright

from . import config
from .auth import ensure_logged_in
from .browser import get_page, launch_context


def main() -> None:
    with sync_playwright() as p:
        context = launch_context(p)
        page = get_page(context)
        ensure_logged_in(page)

        print(
            "Navigera manuellt i webbläsarfönstret till sidan du vill "
            "inspektera (t.ex. sidan som listar egenremisser). Tryck sedan "
            "Enter i den här terminalen för att spara en dump. Skriv 'q' "
            "för att avsluta."
        )
        n = 0
        while True:
            cmd = input("[Enter]=spara dump, q=avsluta: ").strip().lower()
            if cmd == "q":
                break
            n += 1
            stamp = datetime.now().strftime("%Y%m%d_%H%M%S")
            html_path = config.DISCOVER_DIR / f"{stamp}_{n}.html"
            png_path = config.DISCOVER_DIR / f"{stamp}_{n}.png"
            html_path.write_text(page.content(), encoding="utf-8")
            page.screenshot(path=str(png_path), full_page=True)
            print(f"Sparade: {html_path.name} och {png_path.name} (url: {page.url})")

        context.close()


if __name__ == "__main__":
    main()