Matched properties
zillow.sqlite3 keeps property IDs, addresses, Zestimates, prices with listing status, and property facts with area units.
01 / Property research
Abstract
Start with 14,747 residential address strings from Santa Cruz’s city parcel data. Match them to Zillow through REL, then save property facts, Zestimates, and source pages in SQLite. The Python crawler uses rel-crawlee to resume work in one persistent browser session.
Install Release REL.app in /Applications. In Settings → Proxies, add your Oxylabs datacenter proxy using the host, port, protocol, and credentials supplied by Oxylabs. In Settings → Profiles, create OxylabsDatacenter and select that proxy.
Use your own proxy account. Credentials are configured in REL, not in the crawler.
With Python 3.11+ and Git installed, clone the case-studies repository:
git clone https://github.com/rel-me/rel-case-studies.git
cd rel-case-studies./zillow/run.shThe command installs dependencies, imports the city address inventory, and creates a session from your Profile. It verifies up to 50 addresses with one request at a time. Run it again to resume the saved queue and session.
60-second navigation timeout · One retry after a five-second pause for transient browser errors · Stops on access challenges or exhausted retries
zillow.sqlite3 keeps property IDs, addresses, Zestimates, prices with listing status, and property facts with area units.
Saved HTML, structured data, timestamps, and URLs let you check each observation. Missing values and conflicting bathroom counts stay explicit.
crawlee/ holds the request queue; session.json identifies the reusable REL session. Captured data remains local.
Matches require the street and unit, Santa Cruz city/state, and Zillow property ID. Unmatched and ambiguous addresses are counted separately.