Cross-Platform Customer Review Scraper
Data / Backend Engineer · Portfolio project · Cross-platform review extraction
A Python scraping toolkit that collects public customer reviews and app metadata from Trustpilot, Google Play, and the Apple App Store for customer research and sentiment analysis.
View source & evidenceNormalized review JSON · source URLs preserved.
How it works
Discover
Profile URLs + package/app IDs
Fetch
Patchright + platform endpoints
Extract
Reviews + app/business metadata
Normalize
Analysis-friendly JSON records
Deduplicate
Review IDs + fallback keys
Store
JSON outputs + trimmed samples
Problem
Review research is fragmented across platforms with different delivery models: dynamic Next.js data on Trustpilot, paginated tokens on Google Play, and limited page-rendered public review data on the App Store.
Solution
Built isolated scrapers for each source, then normalized review text, ratings, authors, dates, metadata, and source URLs into analysis-friendly JSON with deterministic deduplication and committed samples.
Key decisions
- Kept one script per platform so source-specific fetching, pagination, and fallback behavior remain isolated and maintainable.
- Used a Patchright browser context for Trustpilot before reading public Next.js JSON, reusing a realistic session without scraping visual markup.
- Prioritized App Store page-rendered JSON and retained the legacy RSS path only as a fallback because the public RSS feed is often empty.
- Preserved source URLs, deterministic review IDs, and fallback text/date keys so records remain auditable and deduplicated across runs.
- Stored trimmed portfolio samples separately from full generated outputs and documented platform limitations rather than hiding or estimating missing coverage.
Tech stack
- Python 3.11+
- Patchright
- google-play-scraper
- Apple iTunes Lookup API
- App Store public web JSON
- JSON
- PowerShell
- Google-style docstrings