Scraper RP: Rheinland-Pfalz (StarWeb, Wahl 2031-03-22) #30
Labels
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: tobias/gwoe-antragspruefer#30
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
2031-03-22 — Rheinland-Pfalz (RP), aktuell 18. Wahlperiode.
Backend
StarWebrp18/12345Adapter-Strategie
StarWeb (6/6) — Wiederverwendung. Achtung:
opal.rlp.dehat denselben Markennamen wie NRW OPAL, ist aber eine andere Implementierung (StarWeb-basiert). Nicht den NRWAdapter wiederverwenden.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["RP"].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["RP"]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/rp.yml
StarWeb-Servlet (OPAL_extern — nicht zu verwechseln mit NRW OPAL!):
https://opal.rlp.de/starweb/OPAL_extern/servlet.starweb?path=OPAL_extern/PDOKU.webhttps://opal.rlp.de/starweb/OPAL_extern/index.htm02_PDOKU_WP05_PDOKU_DTYP06_PDOKU_FASTDATV/07_PDOKU_FASTDATB03_PDOKU_DART=D__action=21,52.//tbody[@name="RecordRepeater"].//tr[@name="Repeat_WHET"]/td/b.//tr[@name="Repeat_Fund"]//div[@class="fundstelle"]//a[@title="Gesamtdokument"]/@href.//div[@id="seitenzahl"]//span[@name="NextRecsConditional"].//a[@name="ThesaurusLink"]/text()Synergie: Wiederverwendung
StarWebAdapteraus #27. RP nutzt_PDOKU_*-Field-Präfixe statt_LISSH_*von BB/HB — Field-Map im Adapter konfigurierbar machen.Achtung: RP
opal.rlp.dedarf nicht mit dem NRW OPAL verwechselt werden — Markenname ist gleich, aber das eine ist StarWeb-basiert (RP), das andere eine eigene OPAL-Implementation (NRW). DenNRWAdapterNICHT für RP wiederverwenden.Erledigt in
02ff142.Riesige Überraschung aus dem HAR-Trace: RP 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=rlp.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 RP, 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["RP"]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