На сайте есть JSON API, который позволяет вам получить все детали свойств в данном прямоугольнике.Прямоугольник задается координатами широты и долготы для углов NW и SE.Следующий запрос показывает возможный поиск:
import requests
params = {
"nwlat" : 41.841966864112, # Calculate from address
"nwlong" : -74.08774571289064, # Calculate from address
"selat" : 41.64189784194883, # Calculate from address
"selong" : -73.61430363525392, # Calculate from address
"Count" : 100,
"pagenumber" : 1,
"SiteID" : "68000000",
"pageCount" : "10",
"tab" : "map",
"sh" : "true",
"forcelatlong" : "true",
"maplistings" : "1",
"maplistcards" : "0",
"sv" : "true",
"sortorder" : "newest",
"view" : "forsale",
}
req_properties = requests.get("https://www.remax.com/api/listings", params=params)
matching_properties_json = req_properties.json()
for p in matching_properties_json[0]:
print(f"{p['Address']:<40} {p.get('BedRooms', 0)} beds | {int(p.get('BathRooms',0))} baths | {p['SqFt']} sqft")
Это приводит к 100 ответам (очевидно, что более жесткий прямоугольник уменьшит результаты).Например:
3 Pond Ridge Road 2 beds | 3.0 baths | 2532 sqft
84 Hudson Avenue 3 beds | 1.0 baths | 1824 sqft
116 HUDSON POINTE DR 2 beds | 3.0 baths | 2455 sqft
6 Falcon Drive 4 beds | 3.0 baths | 1993 sqft
53 MAPLE 5 beds | 2.0 baths | 3511 sqft
4 WOODLAND CIR 3 beds | 2.0 baths | 1859 sqft
.
.
.
95 S HAMILTON ST 3 beds | 1.0 baths | 2576 sqft
40 S Manheim Boulevard 2 beds | 2.0 baths | 1470 sqft
Если у вас есть адрес, вам нужно будет рассчитать широту и долготу для этого адреса.Затем создайте маленький прямоугольник вокруг него для углов NW и SE.Затем создайте URL с этими числами.Затем вы получите список всех свойств (возможно, 1) для области.
Чтобы создать квадрат для поиска, вы можете использовать что-то вроде:
lat = 41.841966864112
long = -74.08774571289064
square_size = 0.001
params = {
"nwlat" : lat + square_size,
"nwlong" : long - square_size,
"selat" : lat - square_size,
"selong" : long + square_size,
"Count" : 100,
"pagenumber" : 1,
"SiteID" : "68000000",
"pageCount" : "10",
"tab" : "map",
"sh" : "true",
"forcelatlong" : "true",
"maplistings" : "1",
"maplistcards" : "0",
"sv" : "true",
"sortorder" : "newest",
"view" : "forsale",
}
square_size
потребуется изменить в зависимости от того, насколько точен ваш адрес.