From 833269b024eae0603d0fdcbcbf9bfe450b6f531f Mon Sep 17 00:00:00 2001 From: Joe Crypto Date: Fri, 19 Apr 2024 21:09:33 +0000 Subject: [PATCH] added county, fips, and text desciption fields --- homeharvest/core/scrapers/models.py | 3 +++ homeharvest/core/scrapers/realtor/__init__.py | 15 ++++++++++++++- homeharvest/utils.py | 6 ++++++ 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/homeharvest/core/scrapers/models.py b/homeharvest/core/scrapers/models.py index 8497a93..3214349 100644 --- a/homeharvest/core/scrapers/models.py +++ b/homeharvest/core/scrapers/models.py @@ -67,6 +67,7 @@ class Description: year_built: int | None = None garage: float | None = None stories: int | None = None + text: str | None = None @dataclass @@ -89,3 +90,5 @@ class Property: latitude: float | None = None longitude: float | None = None neighborhoods: Optional[str] = None + county: Optional[str] = None + fips_code: Optional[str] = None diff --git a/homeharvest/core/scrapers/realtor/__init__.py b/homeharvest/core/scrapers/realtor/__init__.py index e298ecc..c806184 100644 --- a/homeharvest/core/scrapers/realtor/__init__.py +++ b/homeharvest/core/scrapers/realtor/__init__.py @@ -171,6 +171,7 @@ class RealtorScraper(Scraper): year_built=property_info["details"].get("year_built"), garage=property_info["details"].get("garage"), stories=property_info["details"].get("stories"), + text=property_info["description"].get("text"), ), days_on_mls=days_on_mls ) @@ -324,6 +325,7 @@ class RealtorScraper(Scraper): type name stories + text } source { id @@ -347,10 +349,17 @@ class RealtorScraper(Scraper): lat } } + county { + name + fips_code + } neighborhoods { name } } + tax_record { + public_record_id + } primary_photo { href } @@ -535,7 +544,10 @@ class RealtorScraper(Scraper): else None, address=self._parse_address(result, search_type="general_search"), description=self._parse_description(result), - days_on_mls=self.calculate_days_on_mls(result) + neighborhoods=self._parse_neighborhoods(result), + days_on_mls=self.calculate_days_on_mls(result), + county=result["location"]["county"].get("name"), + fips_code=result["location"]["county"].get("fips_code"), ) properties.append(realty_property) @@ -694,6 +706,7 @@ class RealtorScraper(Scraper): year_built=description_data.get("year_built"), garage=description_data.get("garage"), stories=description_data.get("stories"), + text=description_data.get("text"), ) @staticmethod diff --git a/homeharvest/utils.py b/homeharvest/utils.py index 6397594..298b550 100644 --- a/homeharvest/utils.py +++ b/homeharvest/utils.py @@ -8,6 +8,7 @@ ordered_properties = [ "mls", "mls_id", "status", + "text", "style", "street", "unit", @@ -28,6 +29,9 @@ ordered_properties = [ "price_per_sqft", "latitude", "longitude", + "neighborhoods", + "county", + "fips_code", "stories", "hoa_fee", "parking_garage", @@ -63,6 +67,8 @@ def process_result(result: Property) -> pd.DataFrame: prop_data["year_built"] = description.year_built prop_data["parking_garage"] = description.garage prop_data["stories"] = description.stories + prop_data["text"] = description.text + properties_df = pd.DataFrame([prop_data]) properties_df = properties_df.reindex(columns=ordered_properties)