Milanuncios Search Scraper avatar

Milanuncios Search Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Milanuncios Search Scraper

Milanuncios Search Scraper

Scrape product listings from Milanuncios.com search pages in bulk. Extract price, location, seller type, images, dates, and 25+ fields per listing — perfect for market research, price monitoring, and competitive analysis in the Spanish classifieds market.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Stealth mode

Stealth mode

Maintained by Community

Actor stats

0

Bookmarked

43

Total users

4

Monthly active users

4 days ago

Last modified

Security

Limited permissions

Share

Milanuncios.com Product Search Scraper: Extract Listings at Scale


What Is Milanuncios.com?

Milanuncios.com is one of Spain's largest classified ads platforms, hosting millions of listings across categories including second-hand cars, real estate, electronics, furniture, and services. The platform is a goldmine for market intelligence — but manually collecting listing data across dozens of search pages is impractical. The Milanuncios.com Product Search Scraper automates this, turning paginated search results into clean, structured datasets ready for analysis.


Overview

This scraper targets Milanuncios search result pages and extracts every visible listing with its full metadata. It is built for:

  • Price analysts monitoring second-hand market trends
  • Car dealers & resellers tracking inventory and valuations
  • E-commerce researchers studying the Spanish classifieds ecosystem
  • Data engineers feeding listing data into pipelines or dashboards

Key strengths: bulk URL support, configurable item limits, residential proxy integration for Spain, and fault-tolerant runs that skip failed pages without stopping.


Input Format

The Actor supports two scraping modes — use only one at a time:

  1. Scrape by URLs — scrape data directly from a list of Milanuncios search result URLs.
{
"urls": [
"https://www.milanuncios.com/coches-de-segunda-mano/?pagina=4"
],
"ignore_url_failures": true,
"max_items_per_url": 50,
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "ES"
}
}
  1. Scrape by search filters — scrape data using a keyword and additional filters (price range, ad type, seller type, sort order, etc.) instead of providing URLs.
{
"keyword": "shoe",
"price_min": 10,
"price_max": 100000,
"ad_type": "n",
"seller_type": "part",
"sort_by": "relevance",
"page": 1,
"max_items_per_url": 50,
"proxy": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "ES"
}
}

There is also a General settings group that applies to both modes.

1. Scrape by URLs

Use this mode when you already have specific search result URLs. When this mode is used, all options in the "Scrape by search filters" section will be disabled.

FieldTypeDefaultDescription
urlsarray(required)One or more Milanuncios search result page URLs to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list. Supports pagination parameters (e.g., ?pagina=4). Add multiple URLs for multi-page or multi-query runs.
ignore_url_failuresbooleantrueIf true, the scraper continues running when a URL fails instead of stopping the entire run. Recommended for bulk jobs.

2. Scrape by search filters

Use this mode when you want to search using a keyword and additional filter attributes instead of scraping by URLs. If you use this mode, leave the urls field above empty.

FieldTypeDefaultDescription
keywordstring—The keyword to search for.
sort_bystring (relevance, date, baratos, caros)—Sort results by Relevance, Newest (date), Cheapest (baratos), or Most expensive (caros).
price_mininteger—Minimum price to filter listings by.
price_maxinteger—Maximum price to filter listings by.
ad_typestring ("", n, s)—Ad type filter: All (empty), Offer (n), Demand (s).
seller_typestring ("", part, prof)—Seller type filter: All (empty), Particular (part), Professional (prof).
pageinteger—The page number to start scraping from.

3. General settings

Applies to both scraping modes above.

FieldTypeDefaultDescription
max_items_per_urlinteger20Maximum number of listings to collect per URL/search. Increase up to the page's natural limit (typically 20–40) for fuller extraction.
proxyobject{"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "ES"}Proxy configuration used by the scraper. Strongly recommended: use the RESIDENTIAL group with apifyProxyCountry: "ES" to match Milanuncios's Spanish audience and avoid geo-blocks or bot detection.

Tip: To scrape multiple pages, add each paginated URL separately (e.g., ?pagina=1, ?pagina=2, ...) and set max_items_per_url to match the listings-per-page count.


Output Format

Sample Output Record

{
"id": "578403951",
"listing_url": "https://www.milanuncios.com//bares/barajeador-y-shoe-automarico-de-cartas-578403951.htm",
"title": "Barajeador y Shoe Automarico de cartas",
"description": "RF- Barajeador y shoe automatico parq cartas de poker . Ideal parq partidas rapidas y fluidas \n\n- Baraja y reparte cartas automaticamente \n- Diseño compacto y facil de usar \n- Funciona con 2 pilas AA no incluidas \n- ",
"category_id": 739,
"category_name": "Bares",
"category_path": "Aficiones y ocio > Bares",
"price": 15,
"currency": "EUR",
"previous_price": null,
"warranty_period": null,
"city": "Mascaraque",
"province": "Toledo",
"region": "Castilla La Mancha",
"seller_id": 10273945,
"seller_type": "private",
"sell_type": "supply",
"is_new": false,
"contactable": true,
"origin_name": "milanuncios",
"origin_provider": null,
"published_at": "2026-01-28T11:40:52Z",
"updated_at": "2026-11-02T20:11:10Z",
"is_highlighted": false,
"is_vip_content": true,
"is_pole_position": null,
"tags": [],
"image_count": 1,
"image_urls": [
"https://images.milanuncios.com/api/v1/ma-ad-media-pro/images/7f5a6701-d4d9-4aa3-a5f6-9fa41fa434b9"
],
"raw_data": null,
"from_url": "https://www.milanuncios.com/anuncios/?s=shoe&orden=relevance&desde=10&hasta=100000&vendedor=part&demanda=n&pagina=1"
}

Complete Output Structure and Field Definitions

The scraper returns JSON data with each listing as an object containing detailed fields. Understanding field purposes enables effective analysis and application.

Listing Identification

ID: Unique identifier of the listing on Milanuncios. Purpose: Database indexing, tracking specific listings over time, avoiding duplicates, linking to detail pages.

Listing URL: Direct link to the full listing on Milanuncios. Purpose: Accessing complete details, contacting the seller, verification of scraped data.

Title: Headline of the listing written by the seller. Purpose: Quick preview, keyword analysis, listing summaries.

Description: Full text description written by the seller. Purpose: Extracting extra details (features, condition, accessories included), keyword and sentiment analysis.

Category

Category ID: Unique identifier of the listing category. Purpose: Joining datasets by category, building category-based filters.

Category Name: Name of the category the listing belongs to. Purpose: Market segmentation and display in reports.

Category Path: Full category hierarchy from parent to child (e.g., Aficiones y ocio > Bares). Purpose: Understanding how a listing is classified and grouping by parent category.

Pricing

Price: Asking price as a number. Purpose: Price comparison, market valuation, budget filtering.

Currency: Currency of the listed price (EUR). Purpose: Correct financial interpretation when merging datasets from multiple markets.

Previous Price: Price before the latest reduction (may be null). Purpose: Detecting price drops and motivated sellers.

Warranty Period: Warranty duration offered by the seller (may be null). Purpose: Assessing buyer protection and seller reliability.

Location

City: City or town where the item is located. Purpose: Local market analysis and lead targeting.

Province: Province of the listing. Purpose: Province-level statistics and filtering.

Region: Autonomous community of the listing. Purpose: Regional market comparison and aggregation.

Seller

Seller ID: Unique identifier of the user who posted the listing. Purpose: Grouping listings by seller, tracking repeat sellers.

Seller Type: Seller category (e.g., private, professional). Purpose: Separating private individuals from businesses.

Sell Type: Nature of the offer (e.g., supply = item offered for sale). Purpose: Separating items for sale from wanted ads.

Is New: Whether the item is flagged as new. Purpose: Filtering by item condition.

Contactable: Whether the seller can be contacted through the platform. Purpose: Identifying reachable leads.

Origin

Origin Name: Platform source of the listing. Purpose: Identifying the data source when merging multiple platforms.

Origin Provider: External provider that supplied the listing (may be null). Purpose: Distinguishing native listings from partner-imported ones.

Listing Dates

Published At: Date and time the listing was first published (ISO 8601). Purpose: Measuring time on market, time-series analysis.

Updated At: Date and time the listing was last updated or renewed (ISO 8601). Purpose: Detecting listing refreshes and measuring freshness.

Promotion Flags

Is Highlighted: Whether the listing is highlighted. Purpose: Analyzing advertising investment by sellers.

Is VIP Content: Whether the listing has VIP placement. Purpose: Analyzing paid visibility and promotion.

Is Pole Position: Whether the listing holds a top search position (may be null). Purpose: Analyzing paid ranking boosts.

Tags

Tags: List of labels attached to the listing (may be empty). Purpose: Additional filtering and classification.

Media

Image Count: Total number of photos in the listing. Purpose: Evaluating listing quality and completeness.

Image URLs: List of direct links to the listing photos in original order. Purpose: Downloading images, visual inspection, computer vision analysis.

Raw Data

Raw Data: Complete original JSON object of the listing as scraped, without modification. Purpose: Auditing, debugging, accessing fields not included in the cleaned output, and reprocessing without re-scraping.


How to Use

  1. Build your URL list — Go to Milanuncios.com, run a search with your filters, and copy the search result page URL. Add pagination variants as needed.
  2. Set item limit — Use max_items_per_url: 50 to collect up to 50 listings per page (adjust to match actual page size).
  3. Enable Spanish proxy — Keep apifyProxyCountry: "ES" to ensure geo-accurate results and reduce the chance of blocks.
  4. Run and export — Download results as JSON, CSV, or Excel for use in spreadsheets, databases, or BI tools.

Common issues:

  • URLs must be search result pages, not individual listing pages.
  • If results are empty, verify the URL loads correctly in a browser without a login prompt.
  • For large-scale collection, spread runs across time to stay within respectful crawl rates.

Use Cases & Business Value

  • Automotive market analysis: Track second-hand car prices across provinces and models
  • Price monitoring: Detect drops using Previous Price vs. Price deltas
  • Seller segmentation: Distinguish professional dealers from private sellers at scale
  • Inventory research: Identify trending categories or underserved markets in Spanish classifieds
  • Academic research: Study informal economy dynamics and regional pricing variation across Spain

Conclusion

The Milanuncios.com Product Search Scraper delivers structured, analysis-ready data from Spain's most active classifieds platform. With 29 fields per listing, proxy-aware configuration, and robust error handling, it is a practical tool for anyone working with Spanish market data. Configure your search URLs, run the scraper, and start extracting insights immediately.