SYSTEM all green source discoverpuertorico.com queue 4,812 pages p99 latency 215ms dataflirt.com · scraper/discoverpuertorico-com
RUN · 12 active pipelines · discoverpuertorico.com live

Puerto Rico travel data,
at warehouse scale.

We extract accommodation directories, tour operator listings, event calendars, and regional guides from discoverpuertorico.com. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake.

Listings extracted
14,291 /run
Event updates
840 /week
Image URLs
52.4K /run
Active pipelines
12
Uptime
99.94%
Data Dictionary

Every field we extract from discoverpuertorico.com

Structured, schema-consistent data across all major object types — delivered clean, typed, and ready to query.

Complete list of extractable fields for Accommodations objects from discoverpuertorico.com. All fields typed and schema-versioned.

listing_idnameproperty_typeregionmunicipalityaddresslatitudelongitudephone_numberwebsite_urlamenitiesdescriptionimage_urlstripadvisor_ratingpage_url
accommodations
● 200 OK
"listing_id": "acc_8492",
"name": "Condado Vanderbilt Hotel",
"property_type": "Hotel",
"region": "Metro",
"municipality": "San Juan",
"latitude": 18.4586,
"longitude": -66.0765,
"amenities": "['Pool', 'Spa', 'Ocean View', 'Wi-Fi']"
# listing_idnameproperty_typeregionmunicipalityaddress
1
2
3

Complete list of extractable fields for Things to Do objects from discoverpuertorico.com. All fields typed and schema-versioned.

activity_idtitlecategorysub_categoryoperator_nameregionmunicipalitydurationdifficulty_leveldescriptionbooking_urlcontact_emailcontact_phonelatitudelongitude
things_to do
● 200 OK
"activity_id": "act_1029",
"title": "El Yunque National Forest Tour",
"category": "Nature",
"operator_name": "Island Journeys",
"region": "East",
"municipality": "Río Grande",
"duration": "Half Day",
"difficulty_level": "Moderate"
# activity_idtitlecategorysub_categoryoperator_nameregion
1
2
3

Complete list of extractable fields for Dining objects from discoverpuertorico.com. All fields typed and schema-versioned.

restaurant_idnamecuisine_typeprice_tierregionmunicipalityaddressoperating_hoursphone_numberwebsite_urlreservation_linkdietary_optionsdescriptionimage_urls
dining
● 200 OK
"restaurant_id": "din_441",
"name": "Marmalade Restaurant & Wine Bar",
"cuisine_type": "Caribbean Fusion",
"price_tier": "$$$$",
"region": "Metro",
"municipality": "San Juan",
"dietary_options": "['Vegetarian', 'Vegan', 'Gluten-Free']",
"operating_hours": "17:30 - 22:00"
# restaurant_idnamecuisine_typeprice_tierregionmunicipality
1
2
3

Complete list of extractable fields for Events objects from discoverpuertorico.com. All fields typed and schema-versioned.

event_idevent_nameevent_typestart_dateend_datevenue_nameregionmunicipalityadmission_feeticket_urldescriptionorganizer_nameorganizer_contactimage_urls
events
● 200 OK
"event_id": "evt_992",
"event_name": "San Sebastian Street Festival",
"event_type": "Festival",
"start_date": "2026-01-15T09:00:00Z",
"end_date": "2026-01-18T23:00:00Z",
"venue_name": "Old San Juan",
"municipality": "San Juan",
"admission_fee": "Free"
# event_idevent_nameevent_typestart_dateend_datevenue_name
1
2
3

Complete list of extractable fields for Regions & Municipalities objects from discoverpuertorico.com. All fields typed and schema-versioned.

region_idregion_namemunicipality_namepopulationnicknamesdescriptiontop_attractionsaverage_temperaturedriving_distance_sjuhero_image_urlgallery_urlspage_url
regions_& municipalities
● 200 OK
"region_name": "South",
"municipality_name": "Ponce",
"nicknames": "['La Perla del Sur', 'Ciudad Señorial']",
"driving_distance_sju": "1h 30m",
"top_attractions": "['Parque de Bombas', 'Museo de Arte de Ponce', 'Castillo Serrallés']",
"average_temperature": "82°F"
# region_idregion_namemunicipality_namepopulationnicknamesdescription
1
2
3

Capabilities

Extract the definitive Puerto Rico travel catalogue

Our scraper handles the official tourism board's dynamic map interfaces, nested business directories, and event calendars — converting unstructured web pages into normalised datasets.

Accommodation Extraction

Extract hotels, resorts, and paradores complete with amenities, contact information, and exact geocoordinates.

Tour & Activity Directories

Capture operator details, activity categorisation, difficulty levels, and direct booking URLs across all regions.

Event Calendar Syncing

Monitor upcoming festivals, concerts, and cultural events with start/end dates, venue details, and ticket links.

Geospatial Data Capture

Extract precise latitude and longitude coordinates from embedded maps for every business and point of interest.

Dining & Restaurant Data

Scrape cuisine types, price tiers, operating hours, and dietary options for local dining establishments.

Image Asset Collection

Extract high-resolution image URLs from galleries and hero sections for content syndication.

Regional Normalisation

Map every listing strictly to its official region and municipality for accurate geographical filtering.

Business Contact Info

Capture phone numbers, email addresses, and external website links for B2B lead generation.

Scheduled Updates

Run continuous pipelines to detect new event listings, business closures, and updated operating hours.

// engagement pipeline

From target URLs to structured delivery

Brief in. Clean data out.

Define Scope
d 0

Select the directories you need: accommodations, events, dining, or the full site. We map the schema.

Pipeline Build
d 2–4

We configure Scrapy and Playwright to navigate pagination, render maps, and extract nested listing data.

Validation & QA
d 4–6

Automated checks ensure coordinate accuracy, date parsing validity, and complete region categorisation.

Delivery
ongoing

Clean JSON, CSV, or Parquet pushed to your S3 bucket or data warehouse on your required schedule.

Under the hood

Overcoming travel directory extraction challenges

Tourism boards use dynamic maps and complex JavaScript frameworks. We handle the rendering so you get clean data.

pipeline-monitor · discoverpuertorico.com · live ● active
// fingerprinting
Identity rotation
TLS fingerprintrandomised
User-agentrotated
IP poolresidential
Challenges blocked0
// pagination
Page coverage
48,291 pages queued running
// observability
Pipeline health
99.9%
uptime
142ms
p99 lat
0.3%
null rate
2
alerts
Map rendering
Extracting embedded coordinate data

Location data is often tied to dynamic map integrations rather than plain text. We execute Playwright sessions to render the map components and intercept the underlying JSON payloads containing precise latitude and longitude.

Pagination
Deep directory traversal

Business listings span hundreds of paginated views. Our crawlers systematically traverse all category and region combinations, ensuring no local business or hidden parador is missed.

Date normalisation
Standardising event timelines

Event dates are frequently displayed in human-readable formats ('Next Friday', 'Oct 12-14'). We parse and convert these into strict ISO 8601 timestamps for immediate database ingestion.

Schema stability
Adapting to CMS updates

Official tourism sites undergo frequent redesigns. Our extraction logic relies on multiple fallback selectors and structural patterns, preventing pipeline failure when the site's layout shifts.

Change detection
Tracking seasonal updates

We maintain a stateful index of all listings. When a restaurant updates its hours or a new festival is announced, we deliver only the modified records to minimise your processing overhead.

Applications

Who uses Discover Puerto Rico data

Teams across industries use discoverpuertorico.com data to build competitive products and smarter operations.

01
Travel Aggregators

OTAs and travel portals ingest official listings to enrich their own destination guides and inventory.

02
Event Planning Platforms

Apps sync official event calendars to offer tourists up-to-date itineraries and local happenings.

03
B2B Lead Generation

Hospitality vendors extract verified contact details for local tour operators, hotels, and restaurants.

04
Economic & Tourism Analysis

Researchers monitor the density of accommodations and tour operators across municipalities to track regional development.

05
AI Travel Assistants

LLM developers use structured factual data to ground their travel recommendation engines and prevent hallucination.

06
Mapping & Geospatial Services

GIS teams integrate precise coordinates and business metadata into custom map overlays for tourists.

Why DataFlirt

"Discover Puerto Rico holds the definitive catalogue of the island's tourism infrastructure, but extracting it requires navigating dynamic maps and deeply nested regional directories."

Most teams underestimate the complexity of scraping official tourism boards. Extracting reliable geodata, handling map-based lazy loading, and normalising inconsistent local business hours requires more than a simple HTTP client. DataFlirt handles the JavaScript rendering and schema normalisation so your engineers can focus on building products.

Technical Spec

Discover Puerto Rico scraper capabilities

Everything supported by our discoverpuertorico.com scraper — rendered SPA elements, auth walls, rate-limit evasion and beyond.

JavaScript rendering
Full Playwright sessions to load dynamic map pins and lazy-loaded galleries
Supported
Geocoordinate extraction
Capture exact latitude and longitude for all mapped locations
Supported
Event date parsing
Conversion of semantic date strings into ISO 8601 timestamps
Supported
Image gallery URLs
Extraction of high-resolution asset links from property and region pages
Supported
Pagination parsing
Traversal of all category and sub-category directory pages
Supported
Change detection
Hash-based diffing to emit only updated or new business listings
Supported
User account itineraries
Extraction of saved trips from authenticated user accounts
Partial
Direct booking API
Interaction with third-party booking widgets for real-time availability
Partial
Infrastructure

Infrastructure powering the pipeline

Open-source tooling on proven cloud infra — no vendor lock-in, full observability.

ScrapyPlaywrightPython 3.12RedisPostgreSQLApache AirflowAWS LambdaS3CloudWatch2CaptchaCapSolverResidential ProxiesDockerKubernetesGrafanaPrometheus
Scrapy + Playwright Stack

Scrapy handles crawl orchestration, deduplication, and retry logic. Playwright handles JavaScript rendering, cookie sessions, and interaction flows. Combined via scrapy-playwright middleware.

Residential Proxy Infrastructure

We maintain pools of residential ISP proxies across multiple regions. Rotation happens per-request with sticky sessions where required. IP score monitoring prevents blacklisted pool contamination.

Cloud-Native Orchestration

Pipelines run on AWS Lambda (burst) and ECS (sustained). Airflow handles scheduling, dependency management, and SLA alerting. All state stored in managed Postgres.

Output & Delivery

Your data, your destination

Data delivered to where your team already works — no new tooling required.

JSON
Newline-delimited or nested — schema versioned per run
CSV
Flat file with typed columns — Excel/Sheets compatible
XLS
Excel spreadsheet delivery for non-technical teams
Parquet
Columnar format for BigQuery, Snowflake, Athena
AWS S3
Direct bucket delivery — compatible with any data lake
Webhook
HTTP POST per record for real-time downstream processing
API
REST endpoints to query your extracted datasets
PostgreSQL
Upsert into your existing schema with conflict resolution
S3
Direct bucket delivery — compatible with any data lake
// faq

Common questions.

About discoverpuertorico.com scraping, legality, and pipeline operations.

Ask us directly →
What data can you extract from discoverpuertorico.com?

We extract public directories of accommodations, restaurants, tour operators, events, beaches, and regional guides. This includes names, descriptions, contact info, coordinates, amenities, and image URLs.

How do you handle dynamic map data?

We use Playwright to execute the JavaScript required to render map interfaces, allowing us to intercept the underlying data payloads and extract precise latitude and longitude coordinates.

Can you track event changes over time?

Yes. We can run pipelines on a weekly or daily schedule to capture new events, date changes, or cancellations, delivering only the modified records via our change detection system.

Do you extract real-time hotel availability?

No. Discover Puerto Rico acts as a directory and routes users to third-party booking engines. We extract the directory metadata and the external booking URL, but not real-time inventory from external hotel systems.

How fresh is the data?

For full site extractions, we typically run weekly or monthly refreshes depending on your requirements. Event calendars can be monitored daily.

Is the data categorised by region?

Yes. Every extracted listing is mapped to its specific municipality (e.g., Ponce, San Juan, Rincón) and broader tourism region (e.g., Metro, West, South) exactly as structured on the site.

$ dataflirt scope --new-project --source=discoverpuertorico.com ready

Tell us what
to extract.
We do the rest.

20-minute scoping call. Pilot dataset within the week. Production within two. Whether you need a one-off export of all tour operators or a continuous feed of local events — we build and operate the pipeline. Tell us what you need.

hello@dataflirt.com · Bengaluru · IST · typical reply < 4h
Related Scrapers

More in tourism and travel guides

Services

Data Extraction for Every Industry

View All Services →