Scraper HB: Bremen (PARiS, Wahl 2027-05-09) #21
Labels
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: tobias/gwoe-antragspruefer#21
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
2027-05-09 — Bremen (HB), aktuell 21. Wahlperiode.
Backend
PARiShb21/1234Adapter-Strategie
PARiS basiert auf StarWeb (siehe
bundeslaender.py::HB.anmerkung). Wenn der generische StarWebAdapter aus dem SH-Issue existiert, ist HB vermutlich ein zweiter Registry-Eintrag mit angepassterbase_url. Falls die PARiS-Variante abweicht, eigene Subklasse wie PortalaAdapter es für LSA/BE hat.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["HB"].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["HB"]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/hb.yml
PARiS ist eine StarWeb-Skin, nicht eigene Engine — Endpoint folgt dem Servlet-Pattern:
https://paris.bremische-buergerschaft.de/starweb/paris/servlet.starweb?path=paris/LISSH.web.//form[@name="__form"]12_LISSH_WP(legislative_term)07_LISSH_DTYP(document_type)13_LISSH_FASTDATV/14_LISSH_FASTDATB(start/end date)08_LISSH_DART=DRUCKSACHE11_LISSH_PARL=L__action=20, 50, 46(verschiedene Suchaktionen).//tbody[@name="RecordRepeater"].//tr[@name="Repeat_WHET"]/td/h2.//td/a[contains(@href, "/dokumente/")][last()]/@href.//div[@id="seitenzahl"]//span[@name="NextRecsConditional"]Synergie: Wiederverwendung des generischen
StarWebAdapteraus dem #27 BB-Issue wenn das zuerst angegangen wird. Bremen ist dann ein zweiter Registry-Eintrag mit angepassterbase_urlund ggf. anderenLISSH_*-Field-Präfixen.bundeslaender.py-Korrektur:
HB.doku_system="PARiS"→ sollte"StarWeb"sein, weil PARiS technisch StarWeb ist.Sondiert in der Phase-2-Session: paris.bremische-buergerschaft.de hat KEIN /portal/-Endpoint (404). Im Gegensatz zu BB/RP/HE/BW läuft HB nicht auf dem portala/eUI-Backend.
PARiS bleibt damit eine echte StarWeb-Servlet-Instanz mit dem alten mehrstufigen Form-Submit-Pattern (
servlet.starweb?path=paris/LISSH.webplus__action-Codes plus Session-State). Das ist dieselbe Klasse wie das ursprünglich für BB vermutete Schema — siehe das deferred Issue #27 das aufzeigt warum das ohne HAR-Trace mehrtägige Trial-and-Error wäre.Was zu tun ist
HAR-Trace einer echten Suche auf https://paris.bremische-buergerschaft.de/starweb/paris/servlet.starweb?path=paris/LISSH.web — dann ist der Adapter ein 4-Stunden-Job. Sobald HB durch ist, ist eventuell auch das StarWeb-Servlet-Pattern für andere möglicherweise noch nicht migrierte Instanzen klarer.
Deferred bis HAR-Trace.
Erledigt durch Roadmap Phase I / Commit
278d74f. EigenerPARiSHBAdaptermit Single-POST-Pipeline gegen den PARiS-Servlet. Drucksachen-IDs mit S/L-Suffix für Stadtbürgerschaft vs Landtag. Live: 5 Klima-Anträge der WP21 inkl. SPD/GRÜNE/LINKE-Koalition.