🕷️ SCRAPER AGENT

Automatický Real Estate Crawler | 40+ portálů | AI-powered

Pardubický kraj 2× denně ČÚZK integrace
312
Nových inzerátů
87
Matchů nalezeno
45min
Délka běhu

🎯 CO AGENT DĚLÁ (CELÝ PROCES)

🕷️

KROK 1: Scraping Portálů

Agent automaticky 2× denně (6:00 + 18:00) crawluje 40 největších českých realitních portálů:

TOP PORTÁLY
✅ Sreality.cz
✅ Bezrealitky.cz
✅ Reality.idnes.cz
✅ RealityMix.cz
✅ MMReality.cz
✅ Ulovdomov.cz
✅ Realitycz.cz
✅ Maxireality.cz
✅ RemaxCR.cz
✅ Bravis.cz
... a dalších 30 portálů

JAK TO FUNGUJE:

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ží
🗺️

KROK 2: AI Detekce Přesné Adresy

Protože většina inzerátů neobsahuje přesnou adresu, agent ji zjistí pomocí AI:

METODA A: Z textu inzerátu

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"

METODA B: Z fotek (GPT-4 Vision)

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"
VALIDACE

Agent ověří adresu pomocí ČÚZK API - existuje? GPS souřadnice? Parcela?

📋

KROK 3: Vyhledání Majitele (ČÚZK API)

Agent se připojí k ČÚZK REST API (https://api-kn.cuzk.gov.cz) a vyhledá majitele:

3.1 Najdi parcelu podle adresy

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" } ] }

3.2 Získej detail parcely (s majiteli)

GET https://api-kn.cuzk.gov.cz/Parcela/12345678 Response: { "vlastnici": [ { "jmeno": "Jan", "prijmeni": "Novák", "typVlastnika": "fyzická osoba" } ] }
RATE LIMITING

Free tier: 1000 volání/měsíc | Pro 312 inzerátů = 312 volání (OK ✅)

🔗

KROK 4: Párování s Databází Kontaktů

Agent má tvou databázi s kontakty (jméno, mobil, email). Teď porovná:

4.1 Exact Match (100%)

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

4.2 Fuzzy Match (85%+ podobnost)

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

4.3 No Match

Jméno z katastru: "Marie Nová" Tvá databáze: - žádná podobná osoba → NO MATCH → Zapíše jen: "Marie Nová" (bez kontaktu)
💾

KROK 5: Uložení do Tabulky

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

🔄 AUTOMATICKÝ BĚH (CRON)

SCHEDULE:

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

PROCES PŘI BĚHU:

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

⚙️ TECHNICKÁ SPECIFIKACE

STACK:

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)

ČÚZK API ENDPOINTS:

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

🚀 NASAZENÍ (DEPLOYMENT)

OPTION 1: Google Cloud Run (doporučeno)

# 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"

💰 NÁKLADY (měsíčně)

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

✅ CHECKLIST NASAZENÍ

🎯 VÝSLEDEK

PO PRVNÍM BĚHU (6:00)
KAŽDÝ DALŠÍ BĚH (18:00, 6:00...)

📞 KDE AGENTA NAJDEŠ

TADY V FLOOTU

Otevři tento chat
Napiš: "Zobraz mi výsledky scraperu"
Real-time tabulka s daty

WEBOVÁ APLIKACE

Admin panel pro monitoring
Start manual run, view logs
Export CSV

TELEGRAM BOT

Notifikace: nové inzeráty
Příkazy: /status, /latest
/search Pardubice