Skip to main content
George Khananaev
Case Study

Google Reviews Scraper Pro: Google Maps Review Scraper

Multi-business collection, review history, image storage, and a REST API

Inside the project

1 / 2 · CLI statistics and CSV export

Google Reviews Scraper Pro command output showing a sample SQLite database with three businesses and separate CSV exports

Actual db-stats and CSV export output, formatted for readability. Local demo with fictional businesses and reviews.

Open image

Google Maps reviews, organized for real work

Google Reviews Scraper Pro is an open-source Python application for scraping Google Maps reviews and turning them into a structured, maintainable dataset. I built it for businesses that need to follow customer feedback across their locations, keep review content and images together, and connect that information to reporting or existing applications.

It combines a browser scraper, local review database, command-line toolkit, and REST API. That gives the project a role beyond collecting a single export: it supports repeatable collection, tracks changes between runs, and makes the resulting data available to other tools.

Collect across businesses and languages

One configuration can cover multiple Google Maps listings, with shared defaults and settings for individual businesses. Each location keeps its own review records and image folders.

Collection supports multilingual review text, ratings, reviewer information, owner responses, review photos, and profile images. Hotel and restaurant reviews can also include category scores such as rooms, cleanliness, food, and service when those details are available.

Sorting, date windows, and review limits let users focus a collection. Separate modes support collecting new reviews, updating existing records, or performing a full rescan.

A review database with memory

SQLite is the primary store, keeping places, reviews, scrape sessions, and review history together. Change detection distinguishes new, updated, restored, and unchanged records. History makes it possible to follow how feedback evolves across collection sessions.

For example, a team managing several hotel listings can maintain a separate dataset for each property, collect recent feedback, and export the results for comparison. The session records provide context for when the collection happened, while review history helps distinguish a new review from an edit to an existing one.

Images and application integrations

Review and profile images can be downloaded in parallel and organized by business. Optional S3-compatible storage supports AWS S3, Cloudflare R2, and MinIO. Configurable URL replacement lets an application use its own image hosting while preserving original links.

Optional incremental MongoDB synchronization connects the local dataset to applications already using MongoDB. The modular processing pipeline separates collection, enrichment, image handling, and storage, giving developers distinct places to adapt the workflow.

A toolkit for ongoing review management

The CLI covers JSON and CSV exports, importing existing data, database statistics, hiding and restoring stored reviews, and history maintenance. Hiding a record controls the local dataset and exports; it does not remove a review from Google Maps.

After configuring the business listings, a typical workflow is:

python start.py
python start.py db-stats
python start.py export --format csv
python start.py logs --lines 100 --level ERROR

Structured logs, scrape-health checks, and selector-health telemetry help operators investigate failed or degraded collections. Browser-session recovery can preserve partial results and retry interrupted work.

Run it as a service

The FastAPI server lets other applications submit scraping jobs, inspect progress, and manage their lifecycle. Its review endpoints expose paginated results, place details, individual reviews, and change history, so a consumer can retrieve the data it needs without working directly with the database.

Interactive API documentation supports integration work. Named API keys and request audit logs provide access-management tools; key-based authentication takes effect when active keys are configured. System endpoints also expose database statistics and collection-health information.

Open source and extensibility

The public repository includes the implementation, sample configurations, tests, and documentation. Developers can use the CLI for a standalone workflow or integrate the API into a larger application. Collection depends on the Google Maps interface, so the operational tooling is useful for checking what each run actually collected.

Technologies: Python, SeleniumBase, Google Chrome, SQLite, FastAPI, MongoDB, and S3-compatible storage.

Explore the GitHub repository, CLI implementation, and REST API.

Read Travel Panel: Enterprise Platform & Leadership
Moon Holidays public website, representing the organization rather than its private application1 images
Commercial workConfidential

Travel Panel: Enterprise Platform & Leadership

Confidential commercial work · public purpose and technologies

A public overview of Travel Panel, George’s engineering leadership, and organizational AI and automation work. Internal implementation stays private.

pythonfastapitypescriptnextjs+11 more
2 min read
Read overview
Read py-image-compressor: batch image compression in Python
Python Bulk Image Compressor running in a terminal, with installation, compression output and a log window1 images
Public projectGitHub

py-image-compressor: batch image compression in Python

A lightweight CLI for compressing, converting, and resizing images in bulk

A small Python utility for compressing, converting, and resizing hundreds of images at once. Supports modern formats like WebP, handles recursive directory scans, and preserves structure so you can run it on a whole asset folder safely.

pythoncliimageswebp+1 more
2 min read38
Explore project
Read AI Travel Journey
AI Travel Journey header with Thai Tours branding and a Thailand destination image1 images
Commercial workConfidential

AI Travel Journey

From customer conversation to a shared travel direction

AI turns customer and agency conversations into a visual journey summary, helping travelers confirm the direction before specific travel offers are prepared.

nextjsreacttypescriptmongodb+1 more
2 min read
Read overview