Call the WG-Gesucht Scraper from Python with the official apify-client package.
pip install apify-clientfrom apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("logiover/wg-gesucht-scraper").call(run_input={
"city": "Berlin",
"category": "wg-rooms",
"maxResults": 500,
})
for l in client.dataset(run["defaultDatasetId"]).iterate_items():
print(l.get("rent"), "EUR -", l.get("sizeSqm"), "m² -", l.get("district"))import pandas as pd
from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("logiover/wg-gesucht-scraper").call(run_input={
"city": "Muenchen",
"category": "apartments",
"maxResults": 0, # whole city
})
rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())
df = pd.DataFrame(rows)
df = df.dropna(subset=["rent", "sizeSqm"])
df["eur_per_sqm"] = df["rent"] / df["sizeSqm"]
print(df.groupby("district")["eur_per_sqm"].mean().sort_values(ascending=False).head())
df.to_csv("munich_rents.csv", index=False)run = client.actor("logiover/wg-gesucht-scraper").call(run_input={
"searchUrls": [
"https://www.wg-gesucht.de/wg-zimmer-in-Berlin.8.0.1.0.html",
"https://www.wg-gesucht.de/wohnungen-in-Hamburg.55.2.1.0.html",
],
"maxResults": 2000,
})
for l in client.dataset(run["defaultDatasetId"]).iterate_items():
print(l["city"], "-", l["title"])See the README for the full input and output field reference.