diff options
author | CoprDistGit <infra@openeuler.org> | 2023-04-11 04:34:15 +0000 |
---|---|---|
committer | CoprDistGit <infra@openeuler.org> | 2023-04-11 04:34:15 +0000 |
commit | 1db222fc5d117eb1c236f0ed277c5afc77727b7b (patch) | |
tree | 099ed8a79346386fec21e457a997db65ec80f00f | |
parent | 07275b5f8ca449401845067c65adec68997e6780 (diff) |
automatic import of python-play-scraper
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | python-play-scraper.spec | 925 | ||||
-rw-r--r-- | sources | 1 |
3 files changed, 927 insertions, 0 deletions
@@ -0,0 +1 @@ +/play_scraper-0.6.0.tar.gz diff --git a/python-play-scraper.spec b/python-play-scraper.spec new file mode 100644 index 0000000..24e4d5d --- /dev/null +++ b/python-play-scraper.spec @@ -0,0 +1,925 @@ +%global _empty_manifest_terminate_build 0 +Name: python-play-scraper +Version: 0.6.0 +Release: 1 +Summary: Google Play Store application scraper +License: MIT License +URL: https://github.com/danieliu/play-scraper +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/59/03/2f4bd9d3666cd808768c63891181e4b8062c5f317a85078a8d68d732a996/play_scraper-0.6.0.tar.gz +BuildArch: noarch + +Requires: python3-beautifulsoup4 +Requires: python3-lxml +Requires: python3-requests-futures +Requires: python3-requests[security] + +%description +# Play Store Scraper + +Scrapes and parses application data from the Google Play Store. + +### Installation + +Install with pip. + +``` +pip install play-scraper +``` + +### Usage + +* [details](#details): Fetch an application's details +* [collection](#collection): Fetch a list of applications and their details. +* [developer](#developer): Fetch a developer's offered applications. +* [suggestions](#suggestions): Fetch a list of query string suggestions. +* [search](#search): Fetch applications matching a search query. +* [similar](#similar): Fetch an application's similar apps. +* [categories](#categories): Fetch a list of available categories. + +#### details + +Fetch an application's details. + +Options: + +* `app_id` the app id to get, e.g. `com.android.chrome` for Google Chrome. +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.details('com.android.chrome')) +{ + 'app_id': 'com.android.chrome', + 'category': ['COMMUNICATION'], + 'content_rating': ['Everyone'], + 'current_version': 'Varies with device', + 'description': 'Google Chrome is a fast, easy to use, and secure web browser. Designed for Android, Chrome brings you personalized news ...', + 'description_html': 'Google Chrome is a fast, easy to ... Chrome web browser experience you love across all your devices.<br/> <br/> <b>Browse fast and type less.</b> ...', + 'developer': 'Google LLC', + 'developer_address': '1600 Amphitheatre Parkway, Mountain View 94043', + 'developer_email': 'apps-help@google.com', + 'developer_id': '5700313618786177705', + 'developer_url': 'http://www.google.com/chrome/android', + 'editors_choice': False, + 'free': True, + 'histogram': { 1: 672180, 2: 288519, 3: 735220, 4: 1560066, 5: 6033423}, + 'iap': False, + 'iap_range': None, + 'icon': 'https://lh3.googleusercontent.com/nYhPnY2I-e9rpqnid9u9aAODz4C04OycEGxqHG5vxFnA35OGmLMrrUmhM9eaHKJ7liB-', + 'installs': '1,000,000,000+', + 'interactive_elements': ['Unrestricted Internet'], + 'price': '0', + 'recent_changes': u"Thanks for choosing Chrome! You can now find your saved passwords more easily \u2013 just tap the new Search icon in Settings > Passwords. We've also included stability and performance improvements.", + 'required_android_version': 'Varies with device', + 'reviews': 9289408, + 'score': '4.3', + 'screenshots': [ 'https://lh3.googleusercontent.com/lKPDNfsO2QhJD9i77rGDTiH5ILjXlXwPsRi194hhkY4BsbaXbpCFrdjWvcU1zttUwqXz=w720-h310-rw', ...], + 'size': 'Varies with device', + 'title': 'Google Chrome: Fast & Secure', + 'updated': 'May 10, 2018', + 'url': 'https://play.google.com/store/apps/details?id=com.android.chrome', + 'video': None +} +``` + +#### collection + +Fetch a list of applications from a collection, optionally filtered by category. + +Options: + +* `collection` a [collection](https://github.com/danieliu/play-scraper/blob/master/play_scraper/lists.py#L3) to fetch. +* `category` (default None) a [category](https://github.com/danieliu/play-scraper/blob/master/play_scraper/lists.py#L12) to filter by. +* `results` (default 60, max 120) the number of apps to fetch. +* `page` (default 0) the page number to fetch. Limit: `page * results <= 500`. +* `age` (default None) an [age range](https://github.com/danieliu/play-scraper/blob/master/play_scraper/lists.py#L74) to filter by. (Only for FAMILY categories) +* `detailed` (default False) if True, sends a request per app to fetch the full [details](#details). +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.collection( + collection='TRENDING', + category='GAME_RACING', + results=5, + page=1)) +[ { 'app_id': 'blaze.andthemonstermachinesferr', + 'description': 'Blaze The Monster Truck Mud Mountain Rescue - Monster Machines game for kids', + 'developer': 'app Star', + 'developer_id': 'app+Star', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/cUk9UciJkqFUE4HVBiif9JUD8rWEXJCewG2JKVK9abWRaK3AMmIaSB61xlKGzIdw8w', + 'price': '0', + 'score': '4.3', + 'title': 'Blaze and the Monster Machines Free', + 'url': 'https://play.google.com/store/apps/details?id=blaze.andthemonstermachinesferr'}, + { 'app_id': 'com.notdoppler.earntodie2', + 'description': 'Drive your car through a zombie apocalypse in this epic sequel to Earn to Die!', + 'developer': 'Not Doppler', + 'developer_id': 'Not+Doppler', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/PeYxYz56AltCaJaRu5OebqewOTqUoR9vU_jPavcphz1CywaU4d69My-cc9Stzx4DTTI', + 'price': '0', + 'score': '4.6', + 'title': 'Earn to Die 2', + 'url': 'https://play.google.com/store/apps/details?id=com.notdoppler.earntodie2'}, ...] +``` + +#### developer + +Fetch a developer's offered applications. + +Options: + +* `developer` the developer name to fetch applications, e.g. `Disney`. (Case sensitive) +* `results` (default 24, max 120) the number of apps to fetch. (Developer may have more or less published apps) +* `page` (default 0) the page number to fetch. Limit: `0 < (results // 20) * page < 12` +* `detailed` (default False) if True, sends a request per app to fetch the full details as in [details](#details). +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.developer('Disney', results=5)) +[ { 'app_id': 'com.disney.datg.videoplatforms.android.watchdc', + 'description': 'Disney Channel, Disney XD & Disney Junior\u2019s new home for shows, games & live TV!', + 'developer': 'Disney', + 'developer_id': 'Disney', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/C6CkMLr6s5bglWHr-2tH0Tdm138_6LCaevR14_fGV9kEPsoCF5t-L5pOQyOic4WsAnoU', + 'price': '0', + 'score': '4.3', + 'title': 'DisneyNOW \u2013 TV Shows & Games', + 'url': 'https://play.google.com/store/apps/details?id=com.disney.datg.videoplatforms.android.watchdc'}, + { 'app_id': 'com.disney.wdw.android', + 'description': 'Walt Disney World Resort maps, wait times, tickets, FastPass+, dining & more.', + 'developer': 'Disney', + 'developer_id': 'Disney', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/NERZ9v0bPh_RBFRAbJe9cgGvk_DDIQCyWJc0YQ6LhRSGC51tQErHa8Rs9oFmzPRb9KQ', + 'price': '0', + 'score': '4.7', + 'title': 'My Disney Experience', + 'url': 'https://play.google.com/store/apps/details?id=com.disney.wdw.android'}, ...] +``` + +#### suggestions + +Fetch a list of autocompleted query suggestions. + +Options: + +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.suggestions('cat')) +['cat games', 'cats', 'cat simulator', 'catan', 'cats in the cradle'] +``` + +#### search + +Fetch a list of applications matching a search query. Retrieves `20` apps at a time. + +Options: + +* `query` query term(s) to search for. +* `page` (default 0, max 12) page number of results to retrieve. +* `detailed` (default False) if True, sends a request per app to fetch the full details as in [details](#details). +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.search('dogs', page=2)) +[ { 'app_id': 'com.tivola.doghotel', + 'description': 'Be head of your own hotel and care for labradors, terrier and many more dogs!', + 'developer': 'Tivola', + 'developer_id': '8927372468482477196', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/_PS_uqG8tjaqS014cN4bNUxQlHKsICWPW6bALReSrpK85CdI-ZkUOA3MT-vO20mVCP1w', + 'price': '0', + 'score': '4.4', + 'title': 'DogHotel : My Dog Boarding Kennel', + 'url': 'https://play.google.com/store/apps/details?id=com.tivola.doghotel'}, + { 'app_id': 'com.clan.of.dogs', + 'description': 'Clan of Dogs 3D Animal Adventure Simulator', + 'developer': 'Wild Foot Games', + 'developer_id': '6061726228463739055', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/JO2cxKk5L3onmu2dchAeRRZyWJuJ5q7veWenP7uSZfItcJLsq1pZPIEoDqc_QNOqp-Q', + 'price': '0', + 'score': '4.2', + 'title': 'Clan of Dogs', + 'url': 'https://play.google.com/store/apps/details?id=com.clan.of.dogs'}, ...] +``` + +#### similar + +Fetch a list of similar applications. + +Options: + +* `app_id` the app id to get, e.g. `com.supercell.clashofclans` for Clash of Clans. +* `results` (default 24, max 60) the number of apps to fetch. +* `detailed` (default False) if True, sends a request per app to fetch the full details as in [details](#details). +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.similar('com.supercell.clashofclans', results=5)) +[ { 'app_id': 'com.supercell.clashroyale', + 'description': 'Clash Royale is a real-time, head-to-head battle game set in the Clash Universe.', + 'developer': 'Supercell', + 'developer_id': '6715068722362591614', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/K-MNjDiO2WwRNwJqPZu8Wd5eOmFEjLYkEEgjZlv35hTiua_VylRPb04Lig3YZXLERvI', + 'price': '0', + 'score': '4.6', + 'title': 'Clash Royale', + 'url': 'https://play.google.com/store/apps/details?id=com.supercell.clashroyale'}, + { 'app_id': 'com.supercell.boombeach', + 'description': 'Storm the beach and win the day!', + 'developer': 'Supercell', + 'developer_id': '6715068722362591614', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/sw4Zb0qt_0-Iqm4YHpXEaGhmj6e3GlHmYroBI8oBuBr4JpRnFF37VmMDaqLMT-MDvhg', + 'price': '0', + 'score': '4.5', + 'title': 'Boom Beach', + 'url': 'https://play.google.com/store/apps/details?id=com.supercell.boombeach'}, ...] +``` + +#### categories + +Fetch a list of available categories. + +Options: + +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> play_scraper.categories() +{'ANDROID_WEAR': { 'category_id': 'ANDROID_WEAR', + 'name': 'Wear OS by Google', + 'url': 'https://play.google.com/store/apps/category/ANDROID_WEAR'}, + 'ART_AND_DESIGN': { 'category_id': 'ART_AND_DESIGN', + 'name': 'Art & Design', + 'url': 'https://play.google.com/store/apps/category/ART_AND_DESIGN'}, ...} +``` + +### Tests + +Run test: +``` +make test +``` + + + + +%package -n python3-play-scraper +Summary: Google Play Store application scraper +Provides: python-play-scraper +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-play-scraper +# Play Store Scraper + +Scrapes and parses application data from the Google Play Store. + +### Installation + +Install with pip. + +``` +pip install play-scraper +``` + +### Usage + +* [details](#details): Fetch an application's details +* [collection](#collection): Fetch a list of applications and their details. +* [developer](#developer): Fetch a developer's offered applications. +* [suggestions](#suggestions): Fetch a list of query string suggestions. +* [search](#search): Fetch applications matching a search query. +* [similar](#similar): Fetch an application's similar apps. +* [categories](#categories): Fetch a list of available categories. + +#### details + +Fetch an application's details. + +Options: + +* `app_id` the app id to get, e.g. `com.android.chrome` for Google Chrome. +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.details('com.android.chrome')) +{ + 'app_id': 'com.android.chrome', + 'category': ['COMMUNICATION'], + 'content_rating': ['Everyone'], + 'current_version': 'Varies with device', + 'description': 'Google Chrome is a fast, easy to use, and secure web browser. Designed for Android, Chrome brings you personalized news ...', + 'description_html': 'Google Chrome is a fast, easy to ... Chrome web browser experience you love across all your devices.<br/> <br/> <b>Browse fast and type less.</b> ...', + 'developer': 'Google LLC', + 'developer_address': '1600 Amphitheatre Parkway, Mountain View 94043', + 'developer_email': 'apps-help@google.com', + 'developer_id': '5700313618786177705', + 'developer_url': 'http://www.google.com/chrome/android', + 'editors_choice': False, + 'free': True, + 'histogram': { 1: 672180, 2: 288519, 3: 735220, 4: 1560066, 5: 6033423}, + 'iap': False, + 'iap_range': None, + 'icon': 'https://lh3.googleusercontent.com/nYhPnY2I-e9rpqnid9u9aAODz4C04OycEGxqHG5vxFnA35OGmLMrrUmhM9eaHKJ7liB-', + 'installs': '1,000,000,000+', + 'interactive_elements': ['Unrestricted Internet'], + 'price': '0', + 'recent_changes': u"Thanks for choosing Chrome! You can now find your saved passwords more easily \u2013 just tap the new Search icon in Settings > Passwords. We've also included stability and performance improvements.", + 'required_android_version': 'Varies with device', + 'reviews': 9289408, + 'score': '4.3', + 'screenshots': [ 'https://lh3.googleusercontent.com/lKPDNfsO2QhJD9i77rGDTiH5ILjXlXwPsRi194hhkY4BsbaXbpCFrdjWvcU1zttUwqXz=w720-h310-rw', ...], + 'size': 'Varies with device', + 'title': 'Google Chrome: Fast & Secure', + 'updated': 'May 10, 2018', + 'url': 'https://play.google.com/store/apps/details?id=com.android.chrome', + 'video': None +} +``` + +#### collection + +Fetch a list of applications from a collection, optionally filtered by category. + +Options: + +* `collection` a [collection](https://github.com/danieliu/play-scraper/blob/master/play_scraper/lists.py#L3) to fetch. +* `category` (default None) a [category](https://github.com/danieliu/play-scraper/blob/master/play_scraper/lists.py#L12) to filter by. +* `results` (default 60, max 120) the number of apps to fetch. +* `page` (default 0) the page number to fetch. Limit: `page * results <= 500`. +* `age` (default None) an [age range](https://github.com/danieliu/play-scraper/blob/master/play_scraper/lists.py#L74) to filter by. (Only for FAMILY categories) +* `detailed` (default False) if True, sends a request per app to fetch the full [details](#details). +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.collection( + collection='TRENDING', + category='GAME_RACING', + results=5, + page=1)) +[ { 'app_id': 'blaze.andthemonstermachinesferr', + 'description': 'Blaze The Monster Truck Mud Mountain Rescue - Monster Machines game for kids', + 'developer': 'app Star', + 'developer_id': 'app+Star', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/cUk9UciJkqFUE4HVBiif9JUD8rWEXJCewG2JKVK9abWRaK3AMmIaSB61xlKGzIdw8w', + 'price': '0', + 'score': '4.3', + 'title': 'Blaze and the Monster Machines Free', + 'url': 'https://play.google.com/store/apps/details?id=blaze.andthemonstermachinesferr'}, + { 'app_id': 'com.notdoppler.earntodie2', + 'description': 'Drive your car through a zombie apocalypse in this epic sequel to Earn to Die!', + 'developer': 'Not Doppler', + 'developer_id': 'Not+Doppler', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/PeYxYz56AltCaJaRu5OebqewOTqUoR9vU_jPavcphz1CywaU4d69My-cc9Stzx4DTTI', + 'price': '0', + 'score': '4.6', + 'title': 'Earn to Die 2', + 'url': 'https://play.google.com/store/apps/details?id=com.notdoppler.earntodie2'}, ...] +``` + +#### developer + +Fetch a developer's offered applications. + +Options: + +* `developer` the developer name to fetch applications, e.g. `Disney`. (Case sensitive) +* `results` (default 24, max 120) the number of apps to fetch. (Developer may have more or less published apps) +* `page` (default 0) the page number to fetch. Limit: `0 < (results // 20) * page < 12` +* `detailed` (default False) if True, sends a request per app to fetch the full details as in [details](#details). +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.developer('Disney', results=5)) +[ { 'app_id': 'com.disney.datg.videoplatforms.android.watchdc', + 'description': 'Disney Channel, Disney XD & Disney Junior\u2019s new home for shows, games & live TV!', + 'developer': 'Disney', + 'developer_id': 'Disney', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/C6CkMLr6s5bglWHr-2tH0Tdm138_6LCaevR14_fGV9kEPsoCF5t-L5pOQyOic4WsAnoU', + 'price': '0', + 'score': '4.3', + 'title': 'DisneyNOW \u2013 TV Shows & Games', + 'url': 'https://play.google.com/store/apps/details?id=com.disney.datg.videoplatforms.android.watchdc'}, + { 'app_id': 'com.disney.wdw.android', + 'description': 'Walt Disney World Resort maps, wait times, tickets, FastPass+, dining & more.', + 'developer': 'Disney', + 'developer_id': 'Disney', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/NERZ9v0bPh_RBFRAbJe9cgGvk_DDIQCyWJc0YQ6LhRSGC51tQErHa8Rs9oFmzPRb9KQ', + 'price': '0', + 'score': '4.7', + 'title': 'My Disney Experience', + 'url': 'https://play.google.com/store/apps/details?id=com.disney.wdw.android'}, ...] +``` + +#### suggestions + +Fetch a list of autocompleted query suggestions. + +Options: + +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.suggestions('cat')) +['cat games', 'cats', 'cat simulator', 'catan', 'cats in the cradle'] +``` + +#### search + +Fetch a list of applications matching a search query. Retrieves `20` apps at a time. + +Options: + +* `query` query term(s) to search for. +* `page` (default 0, max 12) page number of results to retrieve. +* `detailed` (default False) if True, sends a request per app to fetch the full details as in [details](#details). +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.search('dogs', page=2)) +[ { 'app_id': 'com.tivola.doghotel', + 'description': 'Be head of your own hotel and care for labradors, terrier and many more dogs!', + 'developer': 'Tivola', + 'developer_id': '8927372468482477196', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/_PS_uqG8tjaqS014cN4bNUxQlHKsICWPW6bALReSrpK85CdI-ZkUOA3MT-vO20mVCP1w', + 'price': '0', + 'score': '4.4', + 'title': 'DogHotel : My Dog Boarding Kennel', + 'url': 'https://play.google.com/store/apps/details?id=com.tivola.doghotel'}, + { 'app_id': 'com.clan.of.dogs', + 'description': 'Clan of Dogs 3D Animal Adventure Simulator', + 'developer': 'Wild Foot Games', + 'developer_id': '6061726228463739055', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/JO2cxKk5L3onmu2dchAeRRZyWJuJ5q7veWenP7uSZfItcJLsq1pZPIEoDqc_QNOqp-Q', + 'price': '0', + 'score': '4.2', + 'title': 'Clan of Dogs', + 'url': 'https://play.google.com/store/apps/details?id=com.clan.of.dogs'}, ...] +``` + +#### similar + +Fetch a list of similar applications. + +Options: + +* `app_id` the app id to get, e.g. `com.supercell.clashofclans` for Clash of Clans. +* `results` (default 24, max 60) the number of apps to fetch. +* `detailed` (default False) if True, sends a request per app to fetch the full details as in [details](#details). +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.similar('com.supercell.clashofclans', results=5)) +[ { 'app_id': 'com.supercell.clashroyale', + 'description': 'Clash Royale is a real-time, head-to-head battle game set in the Clash Universe.', + 'developer': 'Supercell', + 'developer_id': '6715068722362591614', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/K-MNjDiO2WwRNwJqPZu8Wd5eOmFEjLYkEEgjZlv35hTiua_VylRPb04Lig3YZXLERvI', + 'price': '0', + 'score': '4.6', + 'title': 'Clash Royale', + 'url': 'https://play.google.com/store/apps/details?id=com.supercell.clashroyale'}, + { 'app_id': 'com.supercell.boombeach', + 'description': 'Storm the beach and win the day!', + 'developer': 'Supercell', + 'developer_id': '6715068722362591614', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/sw4Zb0qt_0-Iqm4YHpXEaGhmj6e3GlHmYroBI8oBuBr4JpRnFF37VmMDaqLMT-MDvhg', + 'price': '0', + 'score': '4.5', + 'title': 'Boom Beach', + 'url': 'https://play.google.com/store/apps/details?id=com.supercell.boombeach'}, ...] +``` + +#### categories + +Fetch a list of available categories. + +Options: + +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> play_scraper.categories() +{'ANDROID_WEAR': { 'category_id': 'ANDROID_WEAR', + 'name': 'Wear OS by Google', + 'url': 'https://play.google.com/store/apps/category/ANDROID_WEAR'}, + 'ART_AND_DESIGN': { 'category_id': 'ART_AND_DESIGN', + 'name': 'Art & Design', + 'url': 'https://play.google.com/store/apps/category/ART_AND_DESIGN'}, ...} +``` + +### Tests + +Run test: +``` +make test +``` + + + + +%package help +Summary: Development documents and examples for play-scraper +Provides: python3-play-scraper-doc +%description help +# Play Store Scraper + +Scrapes and parses application data from the Google Play Store. + +### Installation + +Install with pip. + +``` +pip install play-scraper +``` + +### Usage + +* [details](#details): Fetch an application's details +* [collection](#collection): Fetch a list of applications and their details. +* [developer](#developer): Fetch a developer's offered applications. +* [suggestions](#suggestions): Fetch a list of query string suggestions. +* [search](#search): Fetch applications matching a search query. +* [similar](#similar): Fetch an application's similar apps. +* [categories](#categories): Fetch a list of available categories. + +#### details + +Fetch an application's details. + +Options: + +* `app_id` the app id to get, e.g. `com.android.chrome` for Google Chrome. +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.details('com.android.chrome')) +{ + 'app_id': 'com.android.chrome', + 'category': ['COMMUNICATION'], + 'content_rating': ['Everyone'], + 'current_version': 'Varies with device', + 'description': 'Google Chrome is a fast, easy to use, and secure web browser. Designed for Android, Chrome brings you personalized news ...', + 'description_html': 'Google Chrome is a fast, easy to ... Chrome web browser experience you love across all your devices.<br/> <br/> <b>Browse fast and type less.</b> ...', + 'developer': 'Google LLC', + 'developer_address': '1600 Amphitheatre Parkway, Mountain View 94043', + 'developer_email': 'apps-help@google.com', + 'developer_id': '5700313618786177705', + 'developer_url': 'http://www.google.com/chrome/android', + 'editors_choice': False, + 'free': True, + 'histogram': { 1: 672180, 2: 288519, 3: 735220, 4: 1560066, 5: 6033423}, + 'iap': False, + 'iap_range': None, + 'icon': 'https://lh3.googleusercontent.com/nYhPnY2I-e9rpqnid9u9aAODz4C04OycEGxqHG5vxFnA35OGmLMrrUmhM9eaHKJ7liB-', + 'installs': '1,000,000,000+', + 'interactive_elements': ['Unrestricted Internet'], + 'price': '0', + 'recent_changes': u"Thanks for choosing Chrome! You can now find your saved passwords more easily \u2013 just tap the new Search icon in Settings > Passwords. We've also included stability and performance improvements.", + 'required_android_version': 'Varies with device', + 'reviews': 9289408, + 'score': '4.3', + 'screenshots': [ 'https://lh3.googleusercontent.com/lKPDNfsO2QhJD9i77rGDTiH5ILjXlXwPsRi194hhkY4BsbaXbpCFrdjWvcU1zttUwqXz=w720-h310-rw', ...], + 'size': 'Varies with device', + 'title': 'Google Chrome: Fast & Secure', + 'updated': 'May 10, 2018', + 'url': 'https://play.google.com/store/apps/details?id=com.android.chrome', + 'video': None +} +``` + +#### collection + +Fetch a list of applications from a collection, optionally filtered by category. + +Options: + +* `collection` a [collection](https://github.com/danieliu/play-scraper/blob/master/play_scraper/lists.py#L3) to fetch. +* `category` (default None) a [category](https://github.com/danieliu/play-scraper/blob/master/play_scraper/lists.py#L12) to filter by. +* `results` (default 60, max 120) the number of apps to fetch. +* `page` (default 0) the page number to fetch. Limit: `page * results <= 500`. +* `age` (default None) an [age range](https://github.com/danieliu/play-scraper/blob/master/play_scraper/lists.py#L74) to filter by. (Only for FAMILY categories) +* `detailed` (default False) if True, sends a request per app to fetch the full [details](#details). +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.collection( + collection='TRENDING', + category='GAME_RACING', + results=5, + page=1)) +[ { 'app_id': 'blaze.andthemonstermachinesferr', + 'description': 'Blaze The Monster Truck Mud Mountain Rescue - Monster Machines game for kids', + 'developer': 'app Star', + 'developer_id': 'app+Star', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/cUk9UciJkqFUE4HVBiif9JUD8rWEXJCewG2JKVK9abWRaK3AMmIaSB61xlKGzIdw8w', + 'price': '0', + 'score': '4.3', + 'title': 'Blaze and the Monster Machines Free', + 'url': 'https://play.google.com/store/apps/details?id=blaze.andthemonstermachinesferr'}, + { 'app_id': 'com.notdoppler.earntodie2', + 'description': 'Drive your car through a zombie apocalypse in this epic sequel to Earn to Die!', + 'developer': 'Not Doppler', + 'developer_id': 'Not+Doppler', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/PeYxYz56AltCaJaRu5OebqewOTqUoR9vU_jPavcphz1CywaU4d69My-cc9Stzx4DTTI', + 'price': '0', + 'score': '4.6', + 'title': 'Earn to Die 2', + 'url': 'https://play.google.com/store/apps/details?id=com.notdoppler.earntodie2'}, ...] +``` + +#### developer + +Fetch a developer's offered applications. + +Options: + +* `developer` the developer name to fetch applications, e.g. `Disney`. (Case sensitive) +* `results` (default 24, max 120) the number of apps to fetch. (Developer may have more or less published apps) +* `page` (default 0) the page number to fetch. Limit: `0 < (results // 20) * page < 12` +* `detailed` (default False) if True, sends a request per app to fetch the full details as in [details](#details). +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.developer('Disney', results=5)) +[ { 'app_id': 'com.disney.datg.videoplatforms.android.watchdc', + 'description': 'Disney Channel, Disney XD & Disney Junior\u2019s new home for shows, games & live TV!', + 'developer': 'Disney', + 'developer_id': 'Disney', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/C6CkMLr6s5bglWHr-2tH0Tdm138_6LCaevR14_fGV9kEPsoCF5t-L5pOQyOic4WsAnoU', + 'price': '0', + 'score': '4.3', + 'title': 'DisneyNOW \u2013 TV Shows & Games', + 'url': 'https://play.google.com/store/apps/details?id=com.disney.datg.videoplatforms.android.watchdc'}, + { 'app_id': 'com.disney.wdw.android', + 'description': 'Walt Disney World Resort maps, wait times, tickets, FastPass+, dining & more.', + 'developer': 'Disney', + 'developer_id': 'Disney', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/NERZ9v0bPh_RBFRAbJe9cgGvk_DDIQCyWJc0YQ6LhRSGC51tQErHa8Rs9oFmzPRb9KQ', + 'price': '0', + 'score': '4.7', + 'title': 'My Disney Experience', + 'url': 'https://play.google.com/store/apps/details?id=com.disney.wdw.android'}, ...] +``` + +#### suggestions + +Fetch a list of autocompleted query suggestions. + +Options: + +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.suggestions('cat')) +['cat games', 'cats', 'cat simulator', 'catan', 'cats in the cradle'] +``` + +#### search + +Fetch a list of applications matching a search query. Retrieves `20` apps at a time. + +Options: + +* `query` query term(s) to search for. +* `page` (default 0, max 12) page number of results to retrieve. +* `detailed` (default False) if True, sends a request per app to fetch the full details as in [details](#details). +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.search('dogs', page=2)) +[ { 'app_id': 'com.tivola.doghotel', + 'description': 'Be head of your own hotel and care for labradors, terrier and many more dogs!', + 'developer': 'Tivola', + 'developer_id': '8927372468482477196', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/_PS_uqG8tjaqS014cN4bNUxQlHKsICWPW6bALReSrpK85CdI-ZkUOA3MT-vO20mVCP1w', + 'price': '0', + 'score': '4.4', + 'title': 'DogHotel : My Dog Boarding Kennel', + 'url': 'https://play.google.com/store/apps/details?id=com.tivola.doghotel'}, + { 'app_id': 'com.clan.of.dogs', + 'description': 'Clan of Dogs 3D Animal Adventure Simulator', + 'developer': 'Wild Foot Games', + 'developer_id': '6061726228463739055', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/JO2cxKk5L3onmu2dchAeRRZyWJuJ5q7veWenP7uSZfItcJLsq1pZPIEoDqc_QNOqp-Q', + 'price': '0', + 'score': '4.2', + 'title': 'Clan of Dogs', + 'url': 'https://play.google.com/store/apps/details?id=com.clan.of.dogs'}, ...] +``` + +#### similar + +Fetch a list of similar applications. + +Options: + +* `app_id` the app id to get, e.g. `com.supercell.clashofclans` for Clash of Clans. +* `results` (default 24, max 60) the number of apps to fetch. +* `detailed` (default False) if True, sends a request per app to fetch the full details as in [details](#details). +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> print(play_scraper.similar('com.supercell.clashofclans', results=5)) +[ { 'app_id': 'com.supercell.clashroyale', + 'description': 'Clash Royale is a real-time, head-to-head battle game set in the Clash Universe.', + 'developer': 'Supercell', + 'developer_id': '6715068722362591614', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/K-MNjDiO2WwRNwJqPZu8Wd5eOmFEjLYkEEgjZlv35hTiua_VylRPb04Lig3YZXLERvI', + 'price': '0', + 'score': '4.6', + 'title': 'Clash Royale', + 'url': 'https://play.google.com/store/apps/details?id=com.supercell.clashroyale'}, + { 'app_id': 'com.supercell.boombeach', + 'description': 'Storm the beach and win the day!', + 'developer': 'Supercell', + 'developer_id': '6715068722362591614', + 'free': True, + 'full_price': None, + 'icon': 'https://lh3.googleusercontent.com/sw4Zb0qt_0-Iqm4YHpXEaGhmj6e3GlHmYroBI8oBuBr4JpRnFF37VmMDaqLMT-MDvhg', + 'price': '0', + 'score': '4.5', + 'title': 'Boom Beach', + 'url': 'https://play.google.com/store/apps/details?id=com.supercell.boombeach'}, ...] +``` + +#### categories + +Fetch a list of available categories. + +Options: + +* `hl` (default `en` for English) the [language code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L1) to receive results in a specific language + * Note: non-default will result in certain fields as `None` due to the way an app's additional info section HTML is displayed +* `gl` (default `us` for United States) the [country code](https://github.com/danieliu/play-scraper/blob/master/play_scraper/constants.py#L87) to receive results based from a specific country + +```python +>>> import play_scraper +>>> play_scraper.categories() +{'ANDROID_WEAR': { 'category_id': 'ANDROID_WEAR', + 'name': 'Wear OS by Google', + 'url': 'https://play.google.com/store/apps/category/ANDROID_WEAR'}, + 'ART_AND_DESIGN': { 'category_id': 'ART_AND_DESIGN', + 'name': 'Art & Design', + 'url': 'https://play.google.com/store/apps/category/ART_AND_DESIGN'}, ...} +``` + +### Tests + +Run test: +``` +make test +``` + + + + +%prep +%autosetup -n play-scraper-0.6.0 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-play-scraper -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Tue Apr 11 2023 Python_Bot <Python_Bot@openeuler.org> - 0.6.0-1 +- Package Spec generated @@ -0,0 +1 @@ +ffe2e52cb8b26c866d125a304e50cb98 play_scraper-0.6.0.tar.gz |