# Changelog of WhatClinic.com Clinic Scraper (`haketa/whatclinic-scraper`) Actor

- **URL**: https://apify.com/haketa/whatclinic-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/haketa/whatclinic-scraper.md

## Changelog

All notable changes to the **WhatClinic.com Clinic Scraper** are documented here.

### 1.2.0 — 2026-11-01

- **Fixed a profile-URL extraction bug on a core identity field.** Clinic listing cards whose *home* category differs from the search category (e.g. a hair-loss result whose profile lives under `/beauty-clinics/…` or `/cosmetic-plastic-surgery/…`) were being saved with a `null` `profileUrl`. The old parser only matched a fixed whitelist of 9 category slugs and required a 5-segment URL, so province-less markets (Spain, parts of the UK) lost ~1 in 3 links. The parser now recognises any valid `/{category}/{country}/…/{clinic-slug}` profile URL regardless of the leading vertical.
- **Fixed `city` derivation for 4-segment URLs.** Province-less URLs like `/beauty-clinics/spain/marbella/{slug}` were returning the clinic slug as the "city"; the actor now reads the correct city segment per URL shape (4-segment → city at index 2, 5-/6-segment → index 3).
- **Verified fresh run:** 300 unique clinics (hair-loss / dental / cosmetic-surgery / eye-surgery across Turkey, UK, Spain) with `clinicName` 100%, pagination confirmed across pages 1–5. A focused re-verification over the previously-affected markets lifted `profileUrl` and `city` coverage from **66% → 91%** (Spain `profileUrl` 25% → 92%, UK → 92%) with **0 duplicates** on the `profileUrl` key and **0 value bugs**.
- **Hardened the Docker build** by removing the unsupported `--no-optional` flag from `npm install`.
- **README refreshed** to the current output: the example record, field-reference tables and coverage notes now match the live schema and a real scraped item.

### 1.1.0 — 2026-05

- Deep detail-page enrichment (`scrapeDetails: true`): individual `reviews[]` (patient name, **origin country**, verification method, date, treatment, full text), plus `email`, `website`, `latitude`, `longitude`, `postalCode`, `foundingDate`, `paymentMethods`, `currenciesAccepted`, `languages`, `credentials`, `socialLinks`, `ratingScale`.
- Hybrid extractor: comprehensive JSON-LD `MedicalClinic` harvest + live DOM evaluator via `page.evaluate` + smart author parser that splits messy "`date Name, Country ( verified by … )`" strings into clean fields.

### 1.0.0 — 2026-05

- Initial public release: Playwright + real Chrome engine (beats WhatClinic's TLS fingerprinting), multi-pattern listing-card parser, JSON-LD profile enrichment, Apify proxy rotation with warmup + cookie-consent handling, multi-currency price parsing, pay-per-event pricing.
