diff --git a/src/adapters/ssr/overige.py b/src/adapters/ssr/overige.py index 57e133f..8c28d05 100644 --- a/src/adapters/ssr/overige.py +++ b/src/adapters/ssr/overige.py @@ -174,7 +174,7 @@ _VANOORD_STATUS_MAP = { def _vanoord_detail(detail_url: str) -> dict: - """Fetch Van Oord detail page; extract kenmerken from rw-object-features-list.""" + """Fetch Van Oord detail page; extract kenmerken from rw-object-features-list and postcode.""" try: soup = fetch_soup(detail_url) kv: dict[str, str] = {} @@ -185,8 +185,14 @@ def _vanoord_detail(detail_url: str) -> dict: label = label_el.get_text(strip=True).lower() value = value_el.get_text(strip=True) kv[label] = value + # Postcode is in first .elementor-heading-title (e.g. "3562 TN,") + headings = soup.select(".elementor-heading-title") + postcode = None + if headings: + postcode = headings[0].get_text(strip=True).rstrip(",").strip() return { "status": kv.get("status", "").lower(), + "postcode": postcode, "bouwjaar": kv.get("bouwjaar"), "woonoppervlak": kv.get("woonoppervlakte"), "kamers": kv.get("aantal kamers"), @@ -198,6 +204,7 @@ def _vanoord_detail(detail_url: str) -> dict: return {} + def fetch_vanoord() -> list[RawListing]: """Fetch Van Oord listings; Delft and Schiedam, only koop.""" seen: set[str] = set() @@ -263,6 +270,7 @@ def fetch_vanoord() -> list[RawListing]: source_makelaar="vanoord", status=status, adres=adres, + postcode=kk.get("postcode"), stad=stad, prijs=prijs, bouwjaar=int(kk["bouwjaar"]) if kk.get("bouwjaar", "").isdigit() else None, diff --git a/src/adapters/ssr/sure.py b/src/adapters/ssr/sure.py index be2a021..bfc89f7 100644 --- a/src/adapters/ssr/sure.py +++ b/src/adapters/ssr/sure.py @@ -373,11 +373,20 @@ def _vanherk_detail(detail_url: str) -> dict: label = spans[0].get_text(strip=True).lower() value = spans[1].get_text(strip=True) kv[label] = value + # Postcode is in