diff --git a/crawler/data_access.py b/crawler/data_access.py index ad9d512..4163667 100644 --- a/crawler/data_access.py +++ b/crawler/data_access.py @@ -190,10 +190,26 @@ class Listing: return float(matches[0]) return None + @property + def serviceCharge(self) -> float: + ds = self.detailobject["property"].get("tenureInfo", {}).get("content", []) + for d in ds: + if d["type"] == "annualServiceCharge": + matches = re.findall(r"([\d,.]+)", d["value"]) + if len(matches): + # remove separators (e.g. 6,395.76) + match = matches[0].replace(",", "") + return float(match) + return None + @property def development(self) -> bool: # aka new home - return self.detailobject["property"]["development"] + try: + return self.detailobject["property"]["development"] + except: + print(self.identifier) + return False def dict_nicely(self): return { @@ -203,7 +219,9 @@ class Listing: "price_per_sqm": self.price_per_sqm, "url": self.url, "bedrooms": self.bedrooms, - "travel_time_fastest": self.travel_time[0], + "travel_time_fastest": None + if len(self.travel_time) == 0 + else self.travel_time[0], "travel_time_second": None if len(self.travel_time) < 2 else self.travel_time[1],