# Changelog of Trustpilot Reviews Scraper – Extract Business Reviews at Scale (`ninhothedev/trustpilot-scraper`) Actor

- **URL**: https://apify.com/ninhothedev/trustpilot-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/ninhothedev/trustpilot-scraper.md

## Changelog

### \[1.1] – 2026-03-05

#### Fixed

- **Session not persistent** — `_fetch()` was creating a new `curl_cffi` session for every request, so cookies were never carried between pages. Trustpilot saw each request as a cold first visit. Now a single session is created per business and reused across all its pages.
- **`dateFrom`/`dateTo` URL params silently ignored** — Trustpilot's public pages ignore these query parameters. Filtering is now applied client-side on each parsed review's `date_published` field. When `sort=recency` and a review falls before `dateFrom`, scraping stops early (all later reviews will also be too old).
- **`total_pages = 999` sentinel** — caused unnecessary page requests for businesses with few reviews. Real pagination is now read from the first page's `__NEXT_DATA__` before the loop continues.
- **No review deduplication** — identical review IDs (or identical reviewer+date+text fingerprints) could appear multiple times. A `seen_ids` set now deduplicates reviews across pages.
- **`reviewer_name` defaulted to hardcoded `"Anonymous"`** — now defaults to `""` (empty string) consistent with other scrapers and the dataset schema.
- **Oversized Docker image** — Dockerfile used `apify/actor-python-playwright:3.11` (~1 GB extra) even though this scraper uses pure HTTP. Changed to `apify/actor-python:3.11`.
- **`maxReviews=0` blocked by UI** — `INPUT_SCHEMA.json` had `"minimum": 1` preventing users from selecting unlimited mode via the Apify console. Changed to `"minimum": 0`.

#### Added

- `CHANGELOG.md` created.
- `dataset_schema.json` created with full field definitions.

### \[1.0] – 2025-11-01

- Initial release.
