Skip to content Skip to sidebar Skip to footer

Web Scraping Remax.com For Python

This is similar to the question I had here. Which was answered perfectly. Now that I have something to work with what I am trying to do now is instead of having a url entered manua

Solution 1:

The site has a JSON API that lets you get all of the details of properties in a given rectangle. The rectangle is given by latitude and longitude coordinates for the NW and SE corners. The following request shows a possible search:

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")

This results in 100 responses (obviously a tighter rectangle would then reduce the results). For example:

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

Given you have an address, you would then need to calculate the latitude and longitude for that address. Then create a small rectangle around it for the NW and SE corners. Then build a URL with those numbers. You will then get a list of all properties (hopefully 1) for the area.


To make a search square, you could use something like:

lat = 41.841966864112long = -74.08774571289064
square_size = 0.001params = {
    "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 would need to be adjusted depending on how accurate your address is.

Post a Comment for "Web Scraping Remax.com For Python"