red-eagle / google-play-scraper
A PHP scraper to get app data from Google Play. Fork of raulr/google-play-scraper.
This package's canonical repository appears to be gone and the package has been frozen as a result.
Requires
- fabpot/goutte: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^1.10
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ^4.0
This package is not auto-updated.
Last update: 2024-01-09 00:29:37 UTC
README
Fork of https://github.com/undefinedor/google-play-scraper merged with https://github.com/raulr/google-play-scraper
A PHP scraper to get app data from Google Play.
Installation
Add red-eagle/google-play-scraper
as a require dependency in your composer.json
file:
$ composer require red-eagle/google-play-scraper
Usage
First create a Scraper
instance.
use Raulr\GooglePlayScraper\Scraper; $scraper = new Scraper();
There are several methods to configure the default behavior:
setDelay($delay)
: Sets the delay in milliseconds between requests to Google Play site.setDefaultLang($lang)
: Sets the default language for all requests.$lang
must be an ISO_639-1 two letter language code. If not set, the default language isen
.setDefaultCountry($country)
: Sets the default country for all requests.$country
must be an ISO_3166-1 two letter country code. If not set, the default country isus
.
getApp
Gets app information given its ID.
Parameters
$id
: Google Play app identifier.$lang
: (optional, defaults tonull
): Overrides the default language.$country
: (optional, defaults tonull
): Overrides the default country.
Example
$app = $scraper->getApp('com.mojang.minecraftpe');
Returns:
array ( 'id' => 'com.mojang.minecraftpe', 'url' => 'https://play.google.com/store/apps/details?id=com.mojang.minecraftpe', 'image' => 'https://lh3.googleusercontent.com/30koN0eGl-LHqvUZrCj9HT4qVPQdvN508p2wuhaWUnqKeCp6nrs9QW8v6IVGvGNauA=w300', 'title' => 'Minecraft: Pocket Edition', 'author' => 'Mojang', 'author_link' => 'https://play.google.com/store/apps/developer?id=Mojang', 'categories' => array ( 'Arcade', 'Creativity', ), 'price' => '$6.99', 'screenshots' => array ( 'https://lh3.googleusercontent.com/VkLE0e0EDuRID6jdTE97cC8BomcDReJtZOem9Jlb14jw9O7ytAGvE-2pLqvoSJ7w3IdK=h310', 'https://lh3.googleusercontent.com/28b1vxJQe916wOaSVB4CmcnDujk8M2SNaCwqtQ4cUS0wYKYn9kCYeqxX0uyI2X-nQv0=h310', // [...] ), 'description' => 'Our latest free update includes the Nether and all its inhabitants[...]', 'description_html' => 'Our latest free update includes the Nether and all its inhabitants[...]', 'rating' => 4.4726405143737793, 'votes' => 1136962, 'last_updated' => 'October 22, 2015', 'size' => 'Varies with device', 'downloads' => '10,000,000 - 50,000,000', 'version' => 'Varies with device', 'supported_os' => 'Varies with device', 'content_rating' => 'Everyone 10+', 'whatsnew' => 'Build, explore and survive on the go with Minecraft: Pocket Edition[...]', 'video_link' => 'https://www.youtube.com/embed/D2Z9oKTzzrM?ps=play&vq=large&rel=0&autohide=1&showinfo=0&autoplay=1', 'video_image' => 'https://i.ytimg.com/vi/D2Z9oKTzzrM/hqdefault.jpg', )
The following fields may contain a null
value: price
, size
, downloads
, version
, whatsnew
, video_link
and video_image
. The price
being null
means the app is free.
getApps
Gets information for multiple apps given their IDs.
Parameters
$ids
: Array of Google Play app identifiers.$lang
: (optional, defaults tonull
): Overrides the default language.$country
: (optional, defaults tonull
): Overrides the default country.
Example
$app = $scraper->getApps(array( 'com.mojang.minecraftpe', 'com.google.android.youtube', ));
getCategories
Returns an array with the existing categories in Google Play.
Example
use Raulr\GooglePlayScraper\Scraper; $scraper = new Scraper(); $categories = $scraper->getCategories();
Returns:
array ( 'BOOKS_AND_REFERENCE', 'BUSINESS', 'COMICS', 'COMMUNICATION', 'EDUCATION', 'ENTERTAINMENT', 'FINANCE', 'HEALTH_AND_FITNESS', 'LIBRARIES_AND_DEMO', 'LIFESTYLE', 'APP_WALLPAPER', 'MEDIA_AND_VIDEO', 'MEDICAL', 'MUSIC_AND_AUDIO', 'NEWS_AND_MAGAZINES', 'PERSONALIZATION', 'PHOTOGRAPHY', 'PRODUCTIVITY', 'SHOPPING', 'SOCIAL', 'SPORTS', 'TOOLS', 'TRANSPORTATION', 'TRAVEL_AND_LOCAL', 'WEATHER', 'APP_WIDGETS', 'GAME_ACTION', 'GAME_ADVENTURE', 'GAME_ARCADE', 'GAME_BOARD', 'GAME_CARD', 'GAME_CASINO', 'GAME_CASUAL', 'GAME_EDUCATIONAL', 'GAME_MUSIC', 'GAME_PUZZLE', 'GAME_RACING', 'GAME_ROLE_PLAYING', 'GAME_SIMULATION', 'GAME_SPORTS', 'GAME_STRATEGY', 'GAME_TRIVIA', 'GAME_WORD', 'FAMILY', 'FAMILY_ACTION', 'FAMILY_BRAINGAMES', 'FAMILY_CREATE', 'FAMILY_EDUCATION', 'FAMILY_MUSICVIDEO', 'FAMILY_PRETEND', )
getCollections
Returns an array with the existing collections in Google Play.
Example
$collections = $scraper->getCollections();
Returns:
array ( 'topselling_free', 'topselling_paid', 'topselling_new_free', 'topselling_new_paid', 'topgrossing', 'movers_shakers', )
getList
Retrieves a list of Google Play apps given a collection and optionally filtered by category.
Parameters
$collection
: Google Play collection to retrieve. See getCollections for possible values.$category
: (optional, defaults tonull
) Filter request by this category. See getCategories for possible values.$lang
: (optional, defaults tonull
): Overrides the default language.$country
: (optional, defaults tonull
): Overrides the default country.
Example
$apps = $scraper->getList('topselling_free', 'SOCIAL');
Returns:
array ( array ( 'id' => 'com.facebook.katana', 'url' => 'https://play.google.com/store/apps/details?id=com.facebook.katana', 'title' => 'Facebook', 'image' => 'https://lh3.googleusercontent.com/ZZPdzvlpK9r_Df9C3M7j1rNRi7hhHRvPhlklJ3lfi5jk86Jd1s0Y5wcQ1QgbVaAP5Q=w340', 'author' => 'Facebook', 'rating' => 3.9888803958892822, 'price' => null, ), array ( 'id' => 'com.snapchat.android', 'url' => 'https://play.google.com/store/apps/details?id=com.snapchat.android', 'title' => 'Snapchat', 'image' => 'https://lh4.ggpht.com/vdK_CsMSsJoYvJpYgaj91fiJ1T8rnSHHbXL0Em378kQaaf_BGyvUek2aU9z2qbxJCAFV=w340', 'author' => 'Snapchat Inc', 'rating' => 3.8660063743591309, 'price' => null, ), // [...] )
getDetailList
Same as getList but returning full detail app data. An additional request is made for every app from the list in order to get its details.
getListChunk
Retrieves a chunk of a Google Play app list.
Parameters
$collection
: Google Play collection to retrieve. See getCollections for possible values.$category
: (optional, defaults tonull
) Filter request by this category. See getCategories for possible values.$start
: (optional, defaults to0
): Starting index. Must be a value between0
and500
.$num
: (optional, defaults to60
): Amount of apps to retrieve. Must be a value between0
and120
.$lang
: (optional, defaults tonull
): Overrides the default language.$country
: (optional, defaults tonull
): Overrides the default country.
Example
$apps = $scraper->getListChunk('topselling_free', 'SOCIAL', 20, 80);
getDetailListChunk
Same as getListChunk but returning full detail app data. An additional request is made for every app from the list in order to get its details.
getSearch
Retrieves a list of Google Play apps given a search query and optionally filtered by price and rating.
Parameters
$query
: Search query.$price
: (optional, defaults toall
) Filter request by price. Possible values:all
,free
,paid
.$rating
: (optional, defaults toall
) Filter request by rating. Possible values:all
,4+
.$lang
: (optional, defaults tonull
): Overrides the default language.$country
: (optional, defaults tonull
): Overrides the default country.
Example
$apps = $scraper->getSearch('unicorns', 'free', '4+');
getDetailSearch
Same as getSearch but returning full detail app data. An additional request is made for every app from the search result in order to get its details.
getCommentCount
Retrieves comment count for application on selected language
Parameters
$id
- application google play id$lang
- language
Example
$commentCount = $scraper->getCommentCount('com.facebook.katana', 'en');
getAllLangCommentCount
Same as getCommentCount but retrieves comment count for all selected language (array as second paramter)
Parameters
$id
- application google play id$langs
- languages (array)
getSimilar
Retrieves similar apps
Parameters
$id
- application google play id
getDetailSimilar
Same as getDetailSimilar but retrieves apps with details
$id
- application google play id