From 48c23382763160b2afd244bfcedd46b8e6ba6c8a Mon Sep 17 00:00:00 2001 From: Cullen Watson Date: Thu, 21 Sep 2023 11:18:37 -0500 Subject: [PATCH] fix: keyerror --- homeharvest/core/scrapers/redfin/__init__.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/homeharvest/core/scrapers/redfin/__init__.py b/homeharvest/core/scrapers/redfin/__init__.py index 3582cd0..9fa8a44 100644 --- a/homeharvest/core/scrapers/redfin/__init__.py +++ b/homeharvest/core/scrapers/redfin/__init__.py @@ -220,7 +220,14 @@ class RedfinScraper(Scraper): url = f"https://www.redfin.com/stingray/api/gis?al=1®ion_id={region_id}®ion_type={region_type}&sold_within_days=30&num_homes=100000" response = self.session.get(url) response_json = json.loads(response.text.replace("{}&&", "")) - homes = [self._parse_home(home) for home in response_json["payload"]["homes"]] + [ - self._parse_building(building) for building in response_json["payload"]["buildings"].values() - ] - return homes + + if "payload" in response_json: + homes_list = response_json["payload"].get("homes", []) + buildings_list = response_json["payload"].get("buildings", {}).values() + + homes = [self._parse_home(home) for home in homes_list] + [ + self._parse_building(building) for building in buildings_list + ] + return homes + else: + return []