This tutorial shows how to scrape Google Play reviews from public app review pages into a CSV using the Google Play Review Scraper template for UScraper. You will import the workflow, add app URLs, set the export folder, validate rows, and compare API and code-based options.
Before you start
Prerequisites, inputs, and review policy checks
You need UScraper installed as a local desktop app, a Google Play app detail or review URL, and a folder for CSV files. Start with one app URL before adding a batch. Google Play review panels load progressively, so first confirm that CSV rows match visible review cards.
Use app URLs such as https://play.google.com/store/apps/details?id=com.example.app&hl=en&showAllReviews=true. Keep the id parameter stable, and use a fixed hl value for consistent labels.
This guide covers public review pages, not account dashboards, private developer data, CAPTCHA bypassing, paid datasets, or redistribution rights. Review terms and your data policy before scaling.
Compliance first: collect only data you are allowed to process, keep pacing modest, do not defeat access controls, and avoid republishing personal review content without clearance.
Workflow anatomy
What the Google Play review scraper template does
The companion JSON defines a browser workflow, not a hidden API call. It opens the app page, waits for first render, starts an asynchronous review loader, scrolls the active review container, expands long review text, waits for review cards, and exports each card with Structured Export.
The JSON export is the authoritative workflow definition. In plain English, the graph is:
{
"project": "Google Play Review Scraper",
"flow": [
"Navigate",
"Wait for Page Load",
"Sleep",
"Inject JavaScript",
"Sleep",
"Wait for Element",
"Structured Export",
"Loop Continue"
],
"output": "google-play-review-scraper.csv",
"rowSelector": "div.RHo1pe"
}
The important detail is the Inject JavaScript block. Because Google Play uses infinite loading for reviews, the template clicks into the review view, scrolls, counts cards, expands comments, and stops after the count stabilizes or the scroll limit is reached.
| Export field | Source in the page | How to use it |
|---|---|---|
app_name | App title on the current page | Group review rows by app when processing multiple URLs. |
company_name | Developer or publisher text | Compare feedback across publishers or owned apps. |
page_url | Current browser URL | Audit the exact page that produced the row. |
reviewer_name | Visible reviewer display name | Inspect individual review cards during QA. |
review_date | Review date label | Filter comments by release window or campaign period. |
star_rating | Rating label from the review card | Segment positive, neutral, and negative feedback. |
helpful | Helpful vote text when visible | Prioritize reviews that other users found useful. |
comments | Expanded review body | Tag bugs, feature requests, sentiment, and keywords. |
app_version | Version text when exposed | Match reviews to app releases when Google Play shows it. |
review_id | Review identifier when present | Keep a dedupe column even when blank. |
Runbook
How to scrape Google Play reviews to CSV
Import the template
Open Google Play Review Scraper, download the JSON, and import it into UScraper.
Add app review URLs
Replace the sample URL in Navigate with public Google Play app URLs you are allowed to process. Add more URLs after one app exports cleanly.
Keep the loader waits
Leave the review-loader block, the 90-second wait, and the visible review-card check in place for the first test run.
Choose the export path
In Structured Export, confirm google-play-review-scraper.csv, headers, append mode, and a save folder.
Run and validate
Run one app, open the CSV, compare rows against the browser, then add the remaining approved app URLs.
After the first run, sort the CSV by page_url and review_date. Check that rows have an app name, rating, and comment when the card contains one. Blank app_version cells are normal because Google Play does not expose the version on every review.
Validation
Validate the export before analysis
Do not treat the first CSV as production data. Keep the browser open beside the file and spot-check rows from the start, middle, and end of the export. Prove that the loader moved through the review list and that Structured Export captured the columns you need.
| Symptom | Likely cause | Fix |
|---|---|---|
| CSV has headers but no rows | Review cards never appeared or the selector changed | Reopen the app page, handle prompts, and verify div.RHo1pe still matches review cards. |
| Only a small number of rows exported | Infinite loading stabilized early or the page responded slowly | Increase wait time, rerun one URL, and watch the loader status in the browser. |
star_rating is blank | Rating aria-label changed by language or layout | Use a fixed hl parameter or update the rating extraction pattern. |
| Comments are truncated | Long reviews were not expanded before export | Keep the expand step and add more wait time before Structured Export. |
| Duplicate rows appear | Append mode reused an existing CSV | Start with a fresh file for each validation run or dedupe by app, reviewer, date, and comment. |
Alternatives
Google Play reviews API, google-play-scraper, or UScraper?
There is no single best Google Play review scraper for every job. Choose based on access, ownership, coding time, and data custody.
| Option | Good fit | Trade-off |
|---|---|---|
| UScraper template | No-code users who need visible public review rows in a local CSV | Best for supervised batches, not unattended high-volume infrastructure. |
| Google Play Developer Reply to Reviews API | App owners who manage support workflows and reply to reviews for their own apps | Requires authorized developer access and is not a general competitor review crawler. |
| Google Play Developer API | Developers managing publishing, reporting, and app operations programmatically | More setup and permissions than a one-off CSV export. |
| Python or Node google-play-scraper libraries | Developers who want code-level control and custom pipelines | You own dependency updates, retries, storage, and scraper maintenance. |
| Hosted scraping APIs or actors | Teams that want managed infrastructure, scheduling, or proxy handling | App URLs, review data, execution logs, and billing usually pass through a third party. |
If you searched for a google-play-scraper tutorial because you want a Python or Node pipeline, use a library. If you searched for how to scrape Google Play reviews because you need a spreadsheet, the UScraper path is shorter: load reviews, export CSV, validate in the browser.
Common issues
Troubleshooting review loading and CSV quality
Google Play pages are dynamic, so most scraping issues are loading issues. A blank CSV may mean a prompt blocked the page, the review panel did not open, the language changed the rating label, or the export block ran too early.
For reliable batches, keep the workflow conservative. Do not remove waits until you have several clean runs. Avoid parallel app lists, use one language setting, and keep source URLs in the CSV.
FAQ
Google Play review scraper FAQ
Public Google Play reviews can still be subject to terms, robots directives, privacy rules, copyright, database rights, and local law. Use modest pacing, avoid access controls, collect only what you need, and get legal review before commercial use.
Next step
Download the Google Play review scraper template
When you are ready to run the tutorial, download the JSON from Google Play Review Scraper and keep this guide open for validation. For neighboring workflows, browse all UScraper templates or the UScraper blog.

