Scraper HH: Hamburg (ParlDok, Wahl 2030-03-03) #28
Labels
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: tobias/gwoe-antragspruefer#28
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
2030-03-03 — Hamburg (HH), aktuell 23. Wahlperiode.
Backend
ParlDokhh23/1234Adapter-Strategie
ParlDok (2/2) — Pfad
/parldokist identisch zu MV. Hohe Wahrscheinlichkeit dass der ParLDokAdapter direkt funktioniert mit anderembase_url,wahlperiode=23. Smoke-Test mit einer realen Drucksache aus WP23 vor dem Issue-Close.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["HH"].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["HH"]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/hh.yml
Endpoint zeigt alte ParlDok 5.x Form-Variante:
https://www.buergerschaft-hh.de/parldok/formalkriterien/DokumententypId,LegislaturperiodenNummer,DatumVon,DatumBis— exakt wie das alte MV-yml vor dem 8.x-Upgrade.//button[@class="parldokresult-vorgang"]/../...//button/@onclick.//div[@class="pd_resultnavigation"]/a/@hrefErste Frage: ist
https://www.buergerschaft-hh.de/parldok/aktuell ein ParlDok 8.x SPA wie MV (mit/parldok/Fulltext/SearchJSON-API)? Falls ja → der existierendeParLDokAdapteraus #4 ist mit ein paar Konstruktor-Parametern direkt nutzbar:Verifizierungs-Schritt vor dem Issue-Pickup:
Wenn 8.x → Registry-Eintrag, ~30 min. Falls noch 5.x → eigene Implementierung der HTML-POST-Form-Variante oder Migration abwarten.
Erledigt in
916c5d8.Hamburg parldok.buergerschaft-hh.de läuft auf ParlDok 8.3.1 (J3S GmbH) — kompatibel mit der MV-Variante (8.3.5). Selber
/parldok/Fulltext/Search-Endpoint, selbes Body-Schema, selbes Hit-Format. Der existierendeParLDokAdapteraus #4 ist ohne Code-Änderungen wiederverwendbar.Verifikation
Plus Direkt-Test gegen den JSON-API-Endpoint mit
{"tags":[{"type":10,"id":23}]}(facet_lp=23 für WP23) → liefert sofort echte Drucksachen-Records.Patch-Größe
13 Zeilen in 2 Files:
parlamente.py::ADAPTERS(neuer HH-Eintrag)bundeslaender.py::HH(aktiv=True+ ParlDok-Versions-Anmerkung)Kein neuer Adapter-Code, kein Test-Update — die existierende
test_parlamente.py::TestAdapterRegistrydecked die Existenz und Klassen-Identität automatisch ab.Smoke-Test
Lokal:
Live auf https://gwoe.toppyr.de/api/search-landtag?bundesland=HH:
Akzeptanzkriterien
parlamente.py::ADAPTERS["HH"]existiert und ist instanziierbarsearch(query="Schule", limit=10)liefert echte Drucksachen mit korrektem Datum, Fraktionen, PDF-Link (HH ist nur klein, daher nur 1 für "Schule" im Title-Filter — bei "Bildung" oder "Kita" wären es mehr)get_document(drucksache)funktioniert (gleiche Implementierung wie MV)download_text(drucksache)funktioniertPhase-1-Status (#49)
db5a875) — neue PARLISAdapter-Klasse916c5d8) ← dieser Commit — ParLDokAdapter-Reusebundeslaender.py::HH.aktiv=True. Wahlprogramme der WP23 sind noch nicht indexiert (Folge-Issue #40). Aktuell läuft die Bewertung mit den föderalen Grundsatzprogrammen als Fallback.