Scraping
9 minutes reading time

How to Scrape Real Estate Data: ImmoScout24, Homegate, and Other Portals

Table of contents

Real estate portals are among the most-scraped sites on the web, and for good reason: listing prices, time-on-market, and inventory levels are the raw signals behind rental market analysis, investment models, and property listing aggregators. They are also among the best-defended — European market leaders like ImmoScout24 (Germany) and Homegate (Switzerland) run serious bot protection because their listings are their product. This guide covers what data is available, how the major portals defend it, and pipelines that hold up in production.

Key Takeaways

  • Portals expose rich structured data: price, size, rooms, location, amenities, listing age, and agent details
  • Most large portals (ImmoScout24, Homegate, Zillow, Rightmove) sit behind commercial anti-bot systems, so plain HTTP scrapers fail fast
  • Listing detail pages usually embed JSON-LD or state objects that are far more reliable than HTML parsing
  • Change tracking (new listings, price cuts, delistings) is where the real analytical value lives
  • Public listing data is generally scrapeable, but agent contact details are personal data under GDPR — handle them accordingly

What Data Real Estate Portals Expose

A typical listing page carries everything an analyst needs:

  • Price (asking or rent, often with utilities breakdown in DACH portals)
  • Property attributes — living area, plot size, rooms, floor, year built, energy class
  • Location — address or district, coordinates on the map widget
  • Listing metadata — publication date, last update, listing ID
  • Agent/lister details — agency name and contact info

Search result pages add market-level signals: result counts per filter combination are a free proxy for supply, and diffing runs over time yields days-on-market and price-cut statistics.

The Anti-Bot Reality

The big portals invest heavily in blocking scrapers:

  • ImmoScout24 uses aggressive bot detection — datacenter IPs typically receive a CAPTCHA interstitial before the first listing loads, and request signatures are checked on its internal APIs
  • Homegate and other Swiss Marketplace Group portals render through JavaScript frameworks and rate-limit by IP and session
  • Zillow, Rightmove, Idealista all run PerimeterX/DataDome-class protection

The consistent pattern: you need real browser fingerprints, residential IPs, and JavaScript execution. This is exactly the infrastructure a web scraping API abstracts away.

Scraping Listings in Practice

Fetch a rendered search page through WebScraping.AI and parse the embedded structured data:

import requests, json
from bs4 import BeautifulSoup

response = requests.get(
    "https://api.webscraping.ai/html",
    params={
        "api_key": "YOUR_API_KEY",
        "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten",
        "js": True,
        "proxy": "residential",
    },
)
soup = BeautifulSoup(response.text, "html.parser")

# Portals embed structured data — prefer it over HTML selectors
for script in soup.find_all("script", type="application/ld+json"):
    data = json.loads(script.string)
    print(data.get("name"), data.get("offers", {}).get("price"))

For detail pages, the AI extraction endpoints save you from maintaining per-portal parsers — describe the fields once and reuse the code across ImmoScout24, Homegate, and any other portal:

response = requests.get(
    "https://api.webscraping.ai/ai/fields",
    params={
        "api_key": "YOUR_API_KEY",
        "url": "https://www.homegate.ch/rent/4002191348",
        "fields[rent]": "Monthly rent in CHF, numbers only",
        "fields[rooms]": "Number of rooms",
        "fields[area]": "Living area in square meters",
        "fields[available_from]": "Availability date",
        "js": True,
        "proxy": "residential",
    },
)
print(response.json())

Building a Change-Tracking Pipeline

Most real value comes from monitoring, not snapshots:

  1. Crawl search results on a schedule (daily is enough for most markets) and store listing IDs with price and timestamp
  2. Diff against the previous run — new IDs are fresh supply, missing IDs are delistings (a sale/rental proxy), price changes are the market talking
  3. Fetch details only for changed listings to keep request volume and costs down
  4. Normalize across portals early: one schema for price, area, rooms — the AI-field approach above makes this nearly free

Listing data (prices, attributes, photos) is generally public commercial information, and scraping it for analysis is common industry practice. Two areas need care in Europe: agent contact details are personal data under GDPR — don't store them without a lawful basis — and portals' terms of service prohibit automated access, which matters for how you use and republish the data. Republishing full listings competes directly with the portal and invites legal attention; aggregate analytics rarely does. See our web scraping legality guide for the case-law background.

Conclusion

Real estate scraping is a solved problem technically — the hard parts are the anti-bot layer and cross-portal normalization, and both are exactly what WebScraping.AI is built for: Chrome rendering, residential proxies, and AI field extraction behind a single GET request. Whether you're tracking Berlin rents on ImmoScout24, Zurich listings on Homegate, or building a multi-market property aggregator, the free trial is enough to validate your pipeline end to end.

Get Started Now

WebScraping.AI provides rotating proxies, Chromium rendering and built-in HTML parser for web scraping
Icon