mirror of
https://github.com/Bunsly/HomeHarvest.git
synced 2026-03-05 03:54:29 -08:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c597a78191 | ||
|
|
11a7d854f0 |
@@ -471,6 +471,9 @@ class RealtorScraper(Scraper):
|
|||||||
|
|
||||||
is_pending = result["flags"].get("is_pending") or result["flags"].get("is_contingent")
|
is_pending = result["flags"].get("is_pending") or result["flags"].get("is_contingent")
|
||||||
|
|
||||||
|
if is_pending and self.listing_type != ListingType.PENDING:
|
||||||
|
continue
|
||||||
|
|
||||||
realty_property = Property(
|
realty_property = Property(
|
||||||
mls=mls,
|
mls=mls,
|
||||||
mls_id=result["source"].get("listing_id")
|
mls_id=result["source"].get("listing_id")
|
||||||
@@ -584,21 +587,28 @@ class RealtorScraper(Scraper):
|
|||||||
return ", ".join(neighborhoods_list) if neighborhoods_list else None
|
return ", ".join(neighborhoods_list) if neighborhoods_list else None
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _parse_address(result: dict, search_type):
|
def handle_none_safely(address_part):
|
||||||
|
if address_part is None:
|
||||||
|
return ""
|
||||||
|
|
||||||
|
return address_part
|
||||||
|
|
||||||
|
def _parse_address(self, result: dict, search_type):
|
||||||
if search_type == "general_search":
|
if search_type == "general_search":
|
||||||
|
address = result['location']['address']
|
||||||
|
else:
|
||||||
|
address = result["address"]
|
||||||
|
|
||||||
return Address(
|
return Address(
|
||||||
street=f"{result['location']['address']['street_number']} {result['location']['address']['street_name']} {result['location']['address']['street_suffix']}",
|
street=" ".join([
|
||||||
unit=result["location"]["address"]["unit"],
|
self.handle_none_safely(address.get('street_number')),
|
||||||
city=result["location"]["address"]["city"],
|
self.handle_none_safely(address.get('street_name')),
|
||||||
state=result["location"]["address"]["state_code"],
|
self.handle_none_safely(address.get('street_suffix')),
|
||||||
zip=result["location"]["address"]["postal_code"],
|
]).strip(),
|
||||||
)
|
unit=address["unit"],
|
||||||
return Address(
|
city=address["city"],
|
||||||
street=f"{result['address']['street_number']} {result['address']['street_name']} {result['address']['street_suffix']}",
|
state=address["state_code"],
|
||||||
unit=result["address"]["unit"],
|
zip=address["postal_code"],
|
||||||
city=result["address"]["city"],
|
|
||||||
state=result["address"]["state_code"],
|
|
||||||
zip=result["address"]["postal_code"],
|
|
||||||
)
|
)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "homeharvest"
|
name = "homeharvest"
|
||||||
version = "0.3.6"
|
version = "0.3.7"
|
||||||
description = "Real estate scraping library supporting Zillow, Realtor.com & Redfin."
|
description = "Real estate scraping library supporting Zillow, Realtor.com & Redfin."
|
||||||
authors = ["Zachary Hampton <zachary@zacharysproducts.com>", "Cullen Watson <cullen@cullen.ai>"]
|
authors = ["Zachary Hampton <zachary@zacharysproducts.com>", "Cullen Watson <cullen@cullen.ai>"]
|
||||||
homepage = "https://github.com/Bunsly/HomeHarvest"
|
homepage = "https://github.com/Bunsly/HomeHarvest"
|
||||||
|
|||||||
@@ -50,6 +50,16 @@ def test_realtor_pending_comps():
|
|||||||
assert len(set([len(result) for result in results])) == len(results)
|
assert len(set([len(result) for result in results])) == len(results)
|
||||||
|
|
||||||
|
|
||||||
|
def test_realtor_sold_past():
|
||||||
|
result = scrape_property(
|
||||||
|
location="San Diego, CA",
|
||||||
|
past_days=30,
|
||||||
|
listing_type="sold",
|
||||||
|
)
|
||||||
|
|
||||||
|
assert result is not None and len(result) > 0
|
||||||
|
|
||||||
|
|
||||||
def test_realtor_comps():
|
def test_realtor_comps():
|
||||||
result = scrape_property(
|
result = scrape_property(
|
||||||
location="2530 Al Lipscomb Way",
|
location="2530 Al Lipscomb Way",
|
||||||
|
|||||||
Reference in New Issue
Block a user