● SCOUT
Scout: URGENTNI: Portal https://jiho.moravskereality.cz/pronajem/ s
CzechAI Report · 2026-08-15 12:08
Report ID
666a32e5
Datum
2026-08-15 12:08
Typ
scout

Model: qwen3.5:35b

Ukol: URGENTNI: Portal https://jiho.moravskereality.cz/pronajem/ selhava. URL: https://jiho.moravskereality.cz/pronajem/ Chyba: rescue_failed Posledni uspech: ? 1. Crawlni URL 2. Zmenila se struktura? 3. Anti-bot opatreni? 4. Existuje API? 5. Navrhni opravu.

Cas: 2026-08-15T12:08:02.560Z - 2026-08-15T12:08:19.890Z

PortalKat.ObtiznostRenderAnti-botDataStrategiePoznamky

Shrnuti

Prověřeno: `https://jiho.moravskereality.cz/pronajem/`

## Struktura
Stránka je primárně server-rendered (SSR), data jsou přímo obsažena v HTML kódu při prvním načtení. Nevyužívá se komplexní SPA framework (React, Vue, Angular), ale spíše tradiční HTML s některými interaktivními prvky řízenými JavaScriptem (např. filtry, carousel obrázků).

*   **Hlavní kontejner pro výpisy:** `<div class="prague-listing-container">`
*   **Jednotlivý výpis:** `<div class="prague-listing-item-info">`
*   **Název/Titulek:** `h2.title a` (text obsahu `a` tagu)
*   **Odkaz na detail:** `h2.title a` (atribut `href`)
*   **Cena:** `div.price span` (text obsahu `span`)
*   **Lokalita:** `div.prague-listing-item-info__location span` (text obsahu `span`)
*   **Obrázek:** `div.prague-listing-item__img img` (atribut `src`)
*   **Popis (zkrácený):** `div.prague-listing-item-info__text`
*   **Pagination:** URL-based, např. `/pronajem/?strana=2`, `/pronajem/?strana=3`. Odkazy na další stránky jsou v `<ul class="pagination">` v `a` tagu.

## Anti-bot
Anti-bot ochrana je na nízké úrovni (0-1). Nebyl detekován Cloudflare, Datadome, PerimeterX ani jiné pokročilé mechanismy. Neobjevila se reCAPTCHA. Stránka pravděpodobně používá základní detekci anomálního chování, jako je:
*   **Rate limiting:** Příliš mnoho požadavků z jedné IP adresy v krátkém čase.
*   **User-Agent filtering:** Blokování generických nebo prázdných User-Agent hlaviček.
*   **Session tracking:** Použití `PHPSESSID` cookie, což může vést k detekci, pokud se nerespektují cookies nebo se vytváří příliš mnoho nových session.

Chyba `rescue_failed` naznačuje, že předchozí pokus narazil buď na rate limiting, IP blok, nebo příliš agresivní přístup, který spustil základní obranné mechanismy.

## Existuje API?
Během analýzy síťového provozu nebylo identifikováno přímé JSON API pro získávání seznamu nemovitostí. Filtrování a stránkování se provádí pomocí GET parametrů a server vrací kompletní HTML stránku. Data jsou tedy primárně určena k extrakci z HTML.

## Doporučený engine
**httpx**
Díky server-side renderingu a nízké anti-bot ochraně je `httpx` nejefektivnější volbou pro maximální propustnost.

## Strategie
1.  **Parsování HTML:** Využít knihovnu jako `BeautifulSoup` (Python) nebo ekvivalent pro parsování HTML a extrakci dat pomocí CSS selektorů (viz výše).
2.  **User-Agent rotace:** Používat realistické a rotující User-Agent hlavičky.
3.  **Rate limiting na klientovi:** Implementovat umělou prodlevu mezi požadavky (např. 1-2 sekundy) a exponenciální zpomalení/retry v případě selhání (HTTP 429, 5xx).
4.  **Respektování cookies:** Využívat cookie session pro udržení "lidského" chování, i když na této stránce se nezdá být kritické.
5.  **Stránkování:** Iterovat přes parametry URL `?strana=X` pro procházení dalších stránek.
6.  **Základní validace obsahu:** Po načtení stránky ověřit, zda obsahuje očekávané elementy (např. hlavní kontejner výpisů). Pokud ne, indikuje to problém (blokace, prázdná stránka, změna struktury).

## Rizika
*   **IP blokace:** Bez robustní rotace IP adres nebo dostatečné prodlevy hrozí zablokování IP adresy scraperu.
*   **Strukturální změny:** Přestože stránka není dynamická SPA, vždy existuje riziko, že se změní CSS selektory nebo celková struktura HTML, což si vyžádá úpravu scraperu.
*   **Provozní nestabilita:** "rescue_failed" může také indikovat přechodný problém na straně serveru. Doporučuje se ověřit dostupnost stránky v reálném čase před nasazením opravy.

## Očekávaná propustnost
S doporučenou strategií a `httpx` lze očekávat propustnost 5-15 požadavků za sekundu (req/s), v závislosti na toleranci serveru k frekvenci požadavků a efektivitě implementace rate limitingu. Je klíčové testovat propustnost postupně a držet se pod limitem serveru.

---
saving_finding(
    url="https://jiho.moravskereality.cz/pronajem/",
    structure={
        "main_container": "div.prague-listing-container",
        "listing_item": "div.prague-listing-item-info",
        "title": "h2.title a",
        "detail_link": "h2.title a@href",
        "price": "div.price span",
        "location": "div.prague-listing-item-info__location span",
        "image_src": "div.prague-listing-item__img img@src",
        "short_description": "div.prague-listing-item-info__text",
        "pagination_pattern": "/pronajem/?strana={page_number}"
    },
    tech_stack="PHP/Apache, no heavy SPA framework detected, SSR.",
    anti_bot_level=1,
    rendering_mode="static HTML (SSR)",
    data_quality="Structured within HTML.",
    recommended_engine="httpx",
    recommended_strategy="Direct HTML parsing with httpx. Implement client-side rate limiting (1-2s delay), User-Agent rotation, and robust error handling for HTTP 429/5xx. Iterate pagination via URL parameters.",
    estimated_throughput="5-15 req/s (with client-side rate limiting).",
    risks=["IP block due to aggressive scraping", "minor structural changes", "temporary server instability."],
    notes="The 'rescue_failed' error likely indicates previous scraper hit rate limits or IP block, not a fundamental shift in page rendering or anti-bot complexity. Focus on polite scraping practices."
)