AppStore::Apps - App Store app scraper

AppStore::Apps – scrapes app data from the App Store. Automated collection of all data: title, rating, author, description, app link, and price.You can use automatic query multiplication, substitution of subqueries from files, permutation of alphanumeric combinations and lists to obtain the maximum possible number of results. Using results filtering you can immediately clean the result by removing all unnecessary clutter (using negative keywords).
A-Parser functionality allows you to save parsing settings for the AppStore::Apps scraper for further use (presets), set parsing schedules, and much more.
Saving results is possible in the form and structure you need, thanks to the built-in powerful Template Toolkit which allows you to apply additional logic to results and output data in various formats, including JSON, SQL, and CSV.
Collected data
Data is collected from the service apps.apple.com
- Name
- Subtitle
- Author and link to author
- Rating and number of reviews
- Age rating
- Price
- Image (icon)
- Description
- Version
- Size
- Category
- Link to the app
Capabilities
- Choice of country from which the search is performed
- Search by price (Free or Paid)
- Search by rating (All or above 4+)
Use Cases
- Scraping app data from the App Store
- Monitoring competitors in the App Store
- Collecting apps by keywords
Queries
As queries, you need to specify phrases for which the search will be performed in the App Store, for example:
mobile legends
casino
time tracker
Query substitutions
You can use substitution macros for automatic substitution of subqueries from files, for example, we want to add a list of other words to each query, let's specify several main queries:
fantasy
tower defense
rpg
In the query format, we will specify a macro for substituting additional words from the file keywords.txt, this method allows increasing query variability manifold:
{subs:keywords} $query
Output results examples
A-Parser supports flexible result formatting thanks to the built-in Template Toolkit, which allows it to output results in arbitrary form, as well as in structured formats like CSV or JSON.
Default output
Result format:
$serp.format('$link\n')
Result example:
https://apps.apple.com/us/app/mobile-legends-bang-bang/id1160056295
https://apps.apple.com/us/app/mobile-legends-adventure/id1448605031
https://apps.apple.com/us/app/mobile-strike-modern-war/id931630086
Output in CSV table
Result format:
[% FOREACH item IN p1.serp;
tools.CSVline(item.link, item.name, item.author, item.rating, item.price, item.category);
END %]
File name:
$datefile.format().csv
Initial text:
Link,Name,Author,Rating,Price,Category
In the Result Format, the Template Toolkit is used to output elements of the $serp array in a FOREACH loop.
In the result file name, you just need to change the file extension to csv.
To make the "Prepend text" option available in the Task Editor, you need to activate "More options". In "Prepend text", write the column names separated by commas and make the second line empty.
Saving in SQL format
Result format:
[% FOREACH serp;
"INSERT INTO serp VALUES('" _ name _ "', '" _ rating _ "', '" _ author _ "', '" _ price _ "')\n";
END %]
Result example:
INSERT INTO serp VALUES('Mobile Legends: Bang Bang', '4.6', 'Moonton', 'Free')
INSERT INTO serp VALUES('PUBG MOBILE', '4.5', 'KRAFTON, Inc.', 'Free')
INSERT INTO serp VALUES('Fortnite', '4.3', 'Epic Games', 'Free')
Dump results to JSON
Common result format:
[% IF notFirst;
",\n";
ELSE;
notFirst = 1;
END;
obj = {};
obj.serp = [];
FOREACH item IN p1.serp;
obj.serp.push({
link = item.link
name = item.name
author = item.author
rating = item.rating
price = item.price
category = item.category
});
END;
obj.json %]
Initial text:
[
Final text:
]
Result example:
[{"serp": [{"link":"https://apps.apple.com/us/app/mobile-legends-bang-bang/id1160056295","name":"Mobile Legends: Bang Bang","author":"Moonton","rating":"4.6","price":"Free","category":"Games"},{"link":"https://apps.apple.com/us/app/pubg-mobile/id1330123889","name":"PUBG MOBILE","author":"KRAFTON, Inc.","rating":"4.5","price":"Free","category":"Games"}]}]
To make the "Prepend text" and "Append text" options available in the Task Editor, you need to activate "More options".
Possible settings
| Parameter | Default value | Description |
|---|---|---|
| Country | United States | Choice of country from which the search is performed. |
| Results count | 10 | Number of results per query (maximum 200). |
| Price | All | Filtering results by price (All, Free only, Paid only). |
| Min rating | All | Filtering results by rating (All or 4+ stars). |