This tutorial shows how to scrape Google Play app search results into CSV with the Google Play App Scraper template for UScraper. You will import the workflow, change the keyword, set the export path, run the scroll, and validate the output.
Before you start
Prerequisites and policy checks
You need UScraper installed as a local desktop app, the Google Play App Scraper template, and one keyword you are allowed to research. The bundled workflow starts with Video editing; change the q= value in Navigate to a category, feature, brand phrase, or competitor term.
This post covers public Google Play search-result pages. It does not cover account dashboards, private app-owner data, CAPTCHA bypassing, paid API quota avoidance, or review redistribution rights. App owners who need first-party review workflows should also compare the official Google Play Developer APIs and reviews.list endpoint.
Technical visibility is not the same as permission. Keep runs modest, avoid bypassing access controls, and document the keyword, date, country, language, and purpose of each export.
Workflow anatomy
What the Google Play app scraper does
The JSON export is the authoritative workflow sample:
Navigate -> Wait for Page Load -> accept common consent prompt
-> Wait for app links -> scroll lazy-loaded results
-> Sleep -> Structured Export -> End
Google Play search uses lazy loading rather than stable numbered pagination, so the template scrolls repeatedly before extraction. Structured Export then reads each loaded app-detail link it can see.
| Workflow part | Template setting | What to verify |
|---|---|---|
| Navigate | https://play.google.com/store/search?q=Video%20editing&c=apps | Replace Video%20editing with your encoded keyword. |
| Consent handling | XPath for Accept all or I agree buttons | Confirm the prompt is gone before extraction. |
| Lazy-load scroll | 25 scroll steps with an 800 ms delay | Increase only after a clean small run. |
| Row selector | App detail links beginning with /store/apps/details?id= | App cards should be visible before export. |
| Export file | google-play-app-scraper.csv | Change the save folder before production runs. |
Because the bundle has no sample CSV, use the JSON plus your first short run as the sample.
Runbook
How to scrape Google Play app data to CSV
Import the template
Open Google Play App Scraper, download the workflow JSON, and import it into UScraper.
Change the search keyword
In Navigate, edit the q= value. Use URL encoding for spaces, such as budget%20planner or photo%20editor.
Confirm prompts and waits
Run once with the browser visible. Resolve consent, region, sign-in, or verification prompts before trusting the export.
Set the export path
In Structured Export, choose your project folder, keep headers enabled, and use a dated filename for keyword comparisons.
Validate before scaling
Run one keyword, compare five rows against the browser, then widen the keyword list or scroll depth only after the fields are clean.
The stock export is intentionally narrow: app discovery first, deeper detail crawling later.
| CSV column | Meaning | QA check |
|---|---|---|
Name_of_App | The visible app name or link label | Compare with the first line of the result card. |
Rating | The visible star rating when present | Expect blanks for unrated or differently rendered results. |
Company | Best-effort company or developer text | Check that it is not a rating, ad label, or install prompt. |
App_Detail_Web_Page_URL | Absolute Google Play detail URL | Use this for dedupe and deeper app-detail collection. |
Validation
Validate the Google Play CSV export
Open the CSV beside the browser. Sort by App_Detail_Web_Page_URL to find duplicates, then spot-check early, middle, and final rows.
| Symptom | Likely cause | Fix |
|---|---|---|
| Zero rows | App links never rendered, or a consent or CAPTCHA page blocked the session | Resolve the page state, wait for visible app cards, and rerun one keyword. |
| Few rows | Lazy loading stopped early, keyword is narrow, or network response slowed | Increase scroll sleep modestly and compare against the browser. |
| Blank ratings | Google Play did not show ratings for those cards or locale text changed | Treat rating as optional and update the extraction pattern only if visible ratings are missed. |
| Bad company names | Card text order changed or ads/install labels entered the fallback | Inspect one card and update the Company JavaScript column. |
| Duplicate app URLs | The same card appeared in multiple rendered sections or a file was reused | Dedupe by detail URL and clear the CSV before reruns. |
For ASO research, a smaller CSV that you can explain is more useful than a long file with repeated links and uncertain search context.
Alternatives
UScraper vs google-play-scraper libraries and APIs
There are three common ways to collect Google Play data. Use the official Google Play Developer API path when you manage the app and need authorized account data. Use Python google-play-scraper or Node.js google-play-scraper when your team can maintain code and parsers. Use hosted tools such as Apify's Google Play scraper when scheduling or API delivery matters more than local inspection.
UScraper fits a different lane: a no-code, supervised local desktop app workflow for teams that want a reviewable CSV and visible browser QA.
If you need review text after discovery, use a separate Google Play Review Scraper. Search-result scraping finds apps in a market; review scraping studies feedback on known apps.
FAQ
Google Play app scraper FAQ
Google Play search results may be visible in a browser, but automated collection can still be limited by Google terms, robots directives, access controls, copyright, privacy law, and local regulations. Use conservative pacing and get legal review before commercial use.
Next step
Download the Google Play app scraper template
When you are ready to run the tutorial, download the JSON from Google Play App Scraper and keep this article open while you validate the first CSV. For adjacent workflows, browse all UScraper templates or the UScraper blog.

