Ulovdomov Room Finder avatar
Ulovdomov Room Finder
Under maintenance

Pricing

Pay per usage

Go to Apify Store
Ulovdomov Room Finder

Ulovdomov Room Finder

Under maintenance

Ulovdomov Room Finder

Pricing

Pay per usage

Rating

0.0

(0)

Developer

ncst

ncst

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

9 days ago

Last modified

Categories

Share

UlovDomov.cz Property Scraper

A Crawlee + Playwright scraper for extracting rental and sale property listings from UlovDomov.cz, one of the major Czech real estate portals.

Features

  • 🏠 Scrapes rental and sale listings from UlovDomov.cz
  • 📍 Extracts location data (city, district, address)
  • 💰 Parses prices in CZK with period (monthly/daily)
  • 📸 Collects all listing photos
  • 📞 Extracts contact information (name, company, phone)
  • 📋 Captures all property attributes (layout, area, floor, amenities)
  • 📄 Pagination support for comprehensive scraping

Input Schema

ParameterTypeDefaultDescription
searchUrlstringhttps://www.ulovdomov.cz/pronajem/bytu/prahaURL of the search results page
maxItemsinteger50Maximum number of listings to scrape
maxListPagesinteger5Maximum number of result pages to process
maxRequestsPerCrawlinteger200Maximum HTTP requests
useApifyProxybooleanfalseWhether to use Apify proxy

URL Structure

Search URLs

https://www.ulovdomov.cz/{offerType}/{propertyType}/{location}?{filters}
  • Offer Type: pronajem (rent), prodej (sale), spolubydleni (roommate)
  • Property Type: bytu (apartment), domu (house), pokoj (room)
  • Location: praha, brno, ostrava, etc.

Filter Examples

?cena-od=5000&cena-do=15000 # Price range
?pokoju=2 # Number of rooms
?stav=novostavba # Building condition

Output Schema

Each listing produces a UnifiedListing object:

{
source: 'ulovdomov',
sourceId: string, // Listing ID from URL
url: string, // Full listing URL
title: string | null, // "Pronájem bytu 2+kk 72 m2"
offerType: 'pronajem' | 'prodej' | 'spolubydleni' | null,
propertyType: 'byt' | 'dum' | 'pokoj' | null,
priceText: string | null, // "15000 Kč/měsíc"
priceCzk: number | null, // 15000
pricePeriod: 'mesic' | 'den' | null,
city: string | null, // "Praha"
cityPart: string | null, // "Praha 5"
district: string | null, // "Jinonice"
address: string | null, // Full address
description: string | null,
layout: string | null, // "2+kk"
areaM2: number | null, // 72
floor: string | null, // "2"
amenities: string[], // ["balkon", "sklep", "garáž"]
attributes: Record<string, string>, // All raw attributes
images: string[], // Photo URLs
contactName: string | null,
contactCompany: string | null,
contactPhone: string | null,
availableFrom: string | null,
scrapedAt: string // ISO timestamp
}

Usage

Local Development

# Install dependencies
npm install
# Create input file
mkdir -p storage/key_value_stores/default
echo '{"searchUrl": "https://www.ulovdomov.cz/pronajem/bytu/praha", "maxItems": 10}' > storage/key_value_stores/default/INPUT.json
# Run the scraper
npm run start:dev

Deploy to Apify

apify login
apify push

Architecture

This scraper is part of the AI-Powered Czech Room Finder project:

  1. eSpolubydleni Scraper ✅ - Roommate listings (Cheerio)
  2. UlovDomov Scraper ✅ - Property rentals/sales (Playwright)
  3. Room Finder Orchestrator (planned) - Aggregates all sources with AI ranking

Technical Notes

  • Uses Playwright because UlovDomov is a modern SPA that requires JavaScript rendering
  • Implements cookie consent dismissal for uninterrupted scraping
  • Extracts data from both DOM elements and page text patterns
  • Respects maxItems limit across pagination

License

ISC