Automatický Real Estate Crawler | 40+ portálů | AI-powered
Agent automaticky 2× denně (6:00 + 18:00) crawluje 40 největších českých realitních portálů:
1. Agent otevře listing stránku portálu
→ Filtruje: Pardubický kraj + prodej
2. Projde všechny nalezené inzeráty
→ Sbírá URL detailu (ne listing!)
3. Vstoupí do KAŽDÉHO detailu
→ Stahuje: adresu, cenu, plochu, popis, VŠECHNY fotky
4. Validuje odkaz
→ Pokud je nefunkční (404) → smaže ze seznamu
5. Kontroluje duplicity
→ Už scraped? → přeskočí (nedělá znovu)
→ Nový? → zpracuje + uloží
Protože většina inzerátů neobsahuje přesnou adresu, agent ji zjistí pomocí AI:
GPT-4 analyzuje popis:
"Prodej bytu 3+1, ul. Palackého 123, Pardubice - Zelené Předměstí"
→ Extrahuje: "Palackého 123/45, Pardubice, 530 02"
Agent pošle fotky na GPT-4 Vision:
- Číslo popisné na budově
- Název ulice z okolí
- Orientační body (např. "vedle Albertu")
→ GPT vrátí: "Masarykovo náměstí 12, Pardubice"
Agent ověří adresu pomocí ČÚZK API - existuje? GPS souřadnice? Parcela?
Agent se připojí k ČÚZK REST API (https://api-kn.cuzk.gov.cz) a vyhledá majitele:
GET https://api-kn.cuzk.gov.cz/Parcela/Vyhledani
?obec=Pardubice
&ulice=Palackého
&cisloDomovni=123
Response:
{
"data": [
{
"id": 12345678,
"katastrUzemi": "Pardubice",
"parcelniCislo": "123/45"
}
]
}
GET https://api-kn.cuzk.gov.cz/Parcela/12345678
Response:
{
"vlastnici": [
{
"jmeno": "Jan",
"prijmeni": "Novák",
"typVlastnika": "fyzická osoba"
}
]
}
Free tier: 1000 volání/měsíc | Pro 312 inzerátů = 312 volání (OK ✅)
Agent má tvou databázi s kontakty (jméno, mobil, email). Teď porovná:
Jméno z katastru: "Jan Novák"
Tvá databáze:
- Jan Novák → +420 603 123 456, [email protected]
→ MATCH! Score: 1.0
→ Zobrazí: mobil + email
Jméno z katastru: "Petr Dvořák"
Tvá databáze:
- Petra Dvořáková → +420 724 987 654
→ Podobnost: 87% (trigram + Levenshtein distance)
→ POSSIBLE MATCH! Score: 0.87
Jméno z katastru: "Marie Nová"
Tvá databáze:
- žádná podobná osoba
→ NO MATCH
→ Zapíše jen: "Marie Nová" (bez kontaktu)
Agent všechno uloží do strukturované tabulky:
| ID | URL | Portál | Typ | Adresa | Majitel | Mobil | Match |
|---|---|---|---|---|---|---|---|
| 1 | sreality.cz/detail/... | Sreality | Byt | Palackého 123, Pardubice | Jan Novák | +420 603... | ✅ Match |
| 2 | bezrealitky.cz/... | Bezrealitky | Dům | Masarykova 45, Chrudim | Marie Nová | - | ❌ No match |
Cron expression: "0 6,18 * * *"
→ Každý den v 6:00 a 18:00
Cloud: Google Cloud Run / AWS Lambda / Render
Trigger: HTTP webhook nebo cron job
06:00 → Start
├─ 06:00-06:20: Scraping 40 portálů (paralel 5)
├─ 06:20-06:35: AI detekce adres (GPT-4 Vision)
├─ 06:35-06:45: ČÚZK API dotazy (batch 50)
├─ 06:45-06:50: Contact matching
├─ 06:50-06:55: Cleanup nefunkčních URL
└─ 06:55: Hotovo ✅ → Email report
Scraper Worker:
- Python 3.11 + Playwright (headless browser)
- BeautifulSoup / Scrapy (HTML parsing)
- Requests + rotating proxies (anti-ban)
AI Detekce:
- OpenAI GPT-4 Vision API (adresa z fotek)
- OpenAI GPT-4 (parsing popisu)
Katastr:
- ČÚZK REST API (https://api-kn.cuzk.gov.cz)
- Rate limit: 1000 calls/měsíc
Storage:
- PostgreSQL + pgvector (pro budoucí embedding)
- Redis (cache scraped URLs)
1. Vyhledání adresy:
GET /Adresa/Vyhledani?q={adresa}
2. Vyhledání parcely:
GET /Parcela/Vyhledani?obec={obec}&ulice={ulice}
3. Detail parcely (s majiteli):
GET /Parcela/{id}
4. Stav účtu (rate limit):
GET /AplikacniSluzby/StavUctu
# 1. Build Docker image
docker build -t scraper-agent .
# 2. Push to GCR
gcloud builds submit --tag gcr.io/project-id/scraper-agent
# 3. Deploy
gcloud run deploy scraper-agent \
--image gcr.io/project-id/scraper-agent \
--platform managed \
--region europe-west1 \
--memory 2Gi \
--timeout 900s
# 4. Setup cron
gcloud scheduler jobs create http scraper-cron \
--schedule "0 6,18 * * *" \
--uri "https://scraper-agent-xxx.run.app/scrape"
Cloud hosting (Google Cloud Run):
- Compute: 2× 45 min/den × 30 dní = €10
OpenAI API:
- GPT-4 Vision: 300 requests/měsíc × $0.03 = €8
- GPT-4 text: 300 requests × $0.01 = €3
ČÚZK API:
- 1000 volání/měsíc: ZDARMA ✅
Database (Supabase/Neon):
- Free tier: ZDARMA ✅
TOTAL: €21 - €51/měsíc
Otevři tento chat
Napiš: "Zobraz mi výsledky scraperu"
Real-time tabulka s daty
Admin panel pro monitoring
Start manual run, view logs
Export CSV
Notifikace: nové inzeráty
Příkazy: /status, /latest
/search Pardubice