Scraper BB: Brandenburg (StarWeb, Wahl 2029-09-23) #27
Labels
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: tobias/gwoe-antragspruefer#27
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Wahltermin
2029-09-23 — Brandenburg (BB), aktuell 8. Wahlperiode.
Backend
StarWebbb8/1234Adapter-Strategie
StarWeb (5/6) — Wiederverwendung des generischen StarWebAdapters.
Was zu tun ist
webapp/app/parlamente.pyimplementieren — entweder als neue Subklasse vonParlamentAdapteroder als zweiter Registry-Eintrag eines existierenden parametrisierbaren Adapters.ADAPTERS-Registry am Ende der Datei.ADAPTERS["BB"].search("Schule", limit=10)liefert echte Anträge mit Datum + Fraktionen, sortiert newest-first.Hängt mit … zusammenunten) — dieses Issue ist nur der Adapter selbst, nicht das Indexieren der Wahlprogramme oder das Frontend-aktiv-Setzen.Akzeptanzkriterien
parlamente.py::ADAPTERS["BB"]existiert und ist instanziierbarsearch(query="Schule", limit=10)liefert ≥3 echte Drucksachen mit korrektem Datum, Fraktionen, PDF-Linkget_document(drucksache)für eine reale Drucksache der laufenden WP liefert das Dokument zurückdownload_text(drucksache)extrahiert Text aus dem PDFHinweise aus dokukratie/bb.yml — Template-Issue für die StarWeb-Familie
Wenn dieses Issue zuerst angegangen wird, soll der Adapter so generisch werden dass HE/NI/RP/HB als zweite Registry-Einträge passen.
ELVIS Endpoint:
https://www.parlamentsdokumentation.brandenburg.de/starweb/LBB/ELVIS/servlet.starweb?path=LBB/ELVIS/LISSH.web&AdvancedSearch=yesLISSH_DTYP,LISSH_WP_ADV,LISSH_DatumV,LISSH_DatumB,LISSH_DART_ADV=DRUCKSACHE,__action=74,112,201NumPerSegment=1000000undLimitMaximumHitCount="S99{ITEMS -1:-100000}"— alle Treffer auf einer Seite holen.//li[@name="RecordRepeater"].//div[@name="Repeat_DBE"]//a[@title="Gesamtdokument"]/@href.//ul[@class="pagination"]//li[@name="NextRecsConditional"].//div[@name="Repeat_TYP"]//strong.//div[@name="Repeat_TYP"]//a[@name="LinkThes"](?P<originators_raw>.*)\s+(?P<interpellation_date>\d{2}\.\d{2}\.\d{4})\s?Drucksache\s?(?P<interpellation_reference>\d{1,2}\/\d+)StarWebAdapter-Design — Konstruktor-Parameter:
Damit sind HE/NI/RP/HB jeweils nur ein Registry-Eintrag mit angepassten Pfaden + Field-Names. Siehe die jeweiligen anderen Issues für die BL-spezifischen Werte.
Erledigt in
02ff142.Riesige Überraschung aus dem HAR-Trace: BB ist NICHT StarWeb wie in dokukratie und bundeslaender.py klassifiziert, sondern läuft auf dem portala/eUI-Backend (gleich wie LSA/BE/BW). Endpoint
/portal/browse.tt.jsonmitdb_id=lbb.lissh. Das alte StarWeb-Frontend ist nur Legacy.Damit ist der vermeintliche "StarWebAdapter-Template"-Ansatz hinfällig — der existierende PortalaAdapter aus #2/#3 ist mit ein paar zusätzlichen Konstruktor-Parametern (nichts für BB, ein paar mehr für HE) direkt wiederverwendbar.
Adapter-Erweiterungen
Im PortalaAdapter zwei neue Konstruktor-Parameter mit backward-kompatiblen Defaults:
typ_filter: Optional[str] = "DOKDBE"— wenn None, wird die TYP-Klausel weggelassen (HE rejected DOKDBE)omit_date_filter: bool = False— wenn True, kein DAT/DDAT/SDAT-Term (HE braucht das)Plus _RE_BE_DATUM erweitert: vorher nur
vom DD.MM.YYYY, jetzt fallback auf plain Datum (BB schreibt das Datum vor der Drucksachen-Nummer ohne 'vom'-Marker).Smoke-Test
Akzeptanzkriterien
parlamente.py::ADAPTERS["BB"]existiertsearch(query="Schule", limit=10)liefert echte Drucksachen mit Datum, Fraktionen, PDF-LinkPhase-2-Status (#49)
02ff142) — portala statt StarWeb, PortalaAdapter-reusef82c60e) — StarFinderCGIAdapter, eigenständig02ff142) — analog BB