Princip řešení

Skript je určen pro získávání dat z realitních inzerátů na portálu Bezrealitky.cz. Lze jej spouštět pro různé kombinace typu transakce a typu nemovitosti, například pronájem bytů, prodej bytů, pronájem domů nebo prodej domů. Po spuštění se sestaví URL výpisu inzerátů, skript postupně prochází jednotlivé stránky, extrahuje dostupné inzeráty, validuje atributy a ukládá výsledky do databáze.

Vstupy a prostředí

  • Web Bezrealitky.cz jako zdroj realitních inzerátů.
  • Python s knihovnami requests, BeautifulSoup, lxml, SQLAlchemy a psycopg2.
  • PostgreSQL s rozšířením PostGIS.
  • Geokódovací služba Nominatim z projektu OpenStreetMap.
  • Vrstva krajů a okresů pro následnou agregaci dat.

Zpracování dat

  • Stažení HTML výpisu inzerátů.
  • Parsování stránky a extrakce atributů inzerátu.
  • Využití souřadnic ze zdrojového JSON, pokud jsou dostupné.
  • Záložní geokódování textové adresy přes Nominatim.
  • Uložení bodové geometrie do PostGIS ve WGS 84.

Databáze a výstupy

Databázová část skriptu vytváří tabulky pro jednotlivé režimy zpracování. Data jsou ukládána pomocí principu INSERT ... ON CONFLICT DO UPDATE, takže se již existující inzeráty neduplikují, ale aktualizují. Geometrie je vytvářena jako bodová vrstva pomocí funkcí ST_MakePoint a ST_SetSRID.

Výstupem jsou prostorová data uložená v PostgreSQL/PostGIS. Nad daty mohou být vytvořeny materialized views pro agregaci podle krajů a okresů a následně publikovány přes GeoServer jako služba WFS. Tento skript tak propojuje scraping, geokódování, databázové zpracování a webovou publikaci prostorových dat.