Skip to content

Overview

Web Scraper collects apartment listings from ss.lv, stores them in PostgreSQL, and publishes aggregated statistics. This site documents how to run it and what the published numbers mean.

The pipeline

  1. Scrape — listings for a configured city are fetched from ss.lv and parsed.
  2. Store — each listing is written to PostgreSQL, along with the date it was first seen and the date it disappeared from the site.
  3. Report — a scheduled job emails a summary and exports CSV.
  4. Publish — the per-listing export is aggregated into counts and medians, and only those aggregates are published to this site.

Step 4 matters for privacy: the per-listing rows contain street addresses and are never published or committed to the repository. The charts are built from aggregates alone.

What "removed" means

A listing is counted as removed on the day it stops appearing on ss.lv. That usually means the apartment sold or the seller withdrew it — the source does not say which, so the charts describe removals, not sales.

Where to go next