Imovirtual Scraper avatar
Imovirtual Scraper

Pricing

$20.00/month + usage

Go to Store
Imovirtual Scraper

Imovirtual Scraper

Developed by

Marco Rodrigues

Marco Rodrigues

Maintained by Community

Extract detailed property listings from Imovirtual.com, Portugal's leading real estate platform. Get comprehensive property data for market analysis, lead generation, or research purposes.

0.0 (0)

Pricing

$20.00/month + usage

1

8

2

Last modified

16 hours ago

Imovirtual Property Scraper 🏠

Extract detailed property listings from Imovirtual.com, Portugal's leading real estate platform. Get comprehensive property data for market analysis, lead generation, or research purposes.

🎯 Features

  • Complete Property Details: Capture titles, prices, locations, and sizes
  • Professional Info: Get agency details and contact information
  • Detailed Descriptions: Full property descriptions and features
  • Price Analytics: Price per square meter calculations
  • Flexible Filtering: Filter by location, property type, price range, and more
  • Smart Collection: Automatically handles pagination and retry logic
  • Comprehensive Data: Extract 20+ fields including photos, agency info, and property flags

💡 Use Cases

  • Real Estate Market Analysis: Track property prices and trends across Portugal
  • Lead Generation: Get contact details of property agencies
  • Investment Research: Analyze property prices across different locations and property types
  • Market Competition: Monitor competitor listings and pricing strategies
  • Property Database: Build your own comprehensive property database
  • Location Analysis: Compare property prices by city, province, and neighborhood

🚀 Input Parameters

FieldTypeDescriptionDefault
search_locationStringLocation to search (e.g., 'Lisboa', 'Porto', 'Braga')"Lisboa"
property_typeStringType of property (apartment, house, studio, etc.)"apartment"
listing_typeStringBuy or rent listings"buy"
min_priceIntegerMinimum price in EUR50000
max_priceIntegerMaximum price in EUR500000
min_sqftIntegerMinimum area in m²50
max_sqftIntegerMaximum area in m²100
number_of_bedroomsIntegerNumber of bedrooms (1-6+)1

Property Types Available:

  • apartment - Apartments
  • house - Houses
  • studio - Studios (T0)
  • building - Buildings/Developments
  • room - Rooms
  • land - Land plots
  • commercial - Commercial properties
  • office/warehouse - Offices and warehouses
  • garage - Garages

📊 Output Dataset

The actor stores results in a dataset with the following fields:

FieldTypeDescription
idIntegerUnique property listing ID
titleStringProperty title/name
urlStringDirect URL to the property listing
descriptionStringProperty description
full_addressStringComplete property address
provinceStringProvince name
first_photoStringURL of the first property photo
number_of_photosIntegerTotal number of photos available
agency_idIntegerAgency ID
agency_nameStringName of the real estate agency
priceIntegerTotal property price in EUR
price_per_square_meterIntegerPrice per square meter in EUR
terrain_area_square_meterIntegerTerrain area in square meters
area_square_meterIntegerProperty area in square meters
rooms_numberStringNumber of rooms (e.g., "ONE", "TWO")
floor_numberStringFloor number (e.g., "GROUND", "FIRST")
date_createdStringDate when listing was created
is_private_ownerBooleanWhether it's a private owner listing
is_promotedBooleanWhether the listing is promoted
is_exclusive_offerBooleanWhether it's an exclusive offer

🔧 Technical Features

  • Retry Logic: Automatically retries failed requests up to 10 times
  • Response Validation: Ensures valid JSON responses before processing
  • Error Handling: Graceful error handling with detailed logging
  • Data Validation: Robust field extraction with fallback values
  • Stealth Mode: Uses stealth techniques to avoid detection
  • Flexible Output: Saves both processed data and raw responses

📈 Data Quality

The scraper ensures high-quality data extraction by:

  • Validating all required fields before saving
  • Using fallback values for missing data
  • Providing detailed logging for debugging
  • Handling various property types and formats
  • Supporting both Portuguese and international property markets

📥 Example Input JSON

{
"search_location": "Lisboa",
"property_type": "apartment",
"listing_type": "buy",
"min_price": 50000,
"max_price": 500000,
"min_sqft": 50,
"max_sqft": 100,
"number_of_bedrooms": 1
}

📤 Example Output JSON (Single Listing)

{
"id": 18668154,
"title": "Apartamento T0 espaçoso com terraço, em São Bento, Lisboa",
"url": "https://www.imovirtual.com/pt/anuncio/apartamento-t0-espacoso-com-terraco-em-sao-bento-lisboa-ID1gkrg",
"description": "O projeto São Bento 21, como o nome indica, localiza-se na Rua de São Bento, num dos bairros mais bonitos e cosmopolitas de Lisboa. Trata-se de uma reabilitação com assintura do gabinete Saraiva +Ass...",
"full_address": "Rua de São Bento 123, Misericórdia, Lisboa",
"province": "Lisboa",
"first_photo": "https://ireland.apollo.olxcdn.com/v1/files/eyJmbiI6InZuY2o4ZTJzY3Aycy1FQ09TWVNURU0iLCJ3IjpbeyJmbiI6IjY5bmxwYTdlY3FtNzEtQVBUIiwicyI6IjE0IiwicCI6IjEwLC0xMCIsImEiOiIwIn1dfQ.KPfw7Rp-ulwi7-mkqdoJQnMQ2DioSIEqdTYpSfuuxGE/image;s=1280x1024;q=80",
"number_of_photos": 13,
"agency_id": 3456674,
"agency_name": "Infante & Riu - Portugal Real Estate",
"price": 450000,
"price_per_square_meter": 7759,
"terrain_area_square_meter": null,
"area_square_meter": 58,
"rooms_number": "ONE",
"floor_number": "GROUND",
"date_created": "2025-08-04 21:00:37",
"is_private_owner": false,
"is_promoted": false,
"is_exclusive_offer": false
}

🚀 Getting Started

  1. Configure your input parameters (location, property type, price range)
  2. Run the scraper
  3. Access your results in the dataset
  4. Export data in JSON format for further analysis

The property information is structured in a clean, consistent format, making it easy to access and process the data programmatically for your specific use case.