Skip to main content

从 Google Play 商店抓取应用程序数据。

项目描述

google-play-scraper-py

派皮 PyPI - Python 版本 PyPI - 许可证 PyPI - 轮子

围绕Node.js 模块的 Python 包装器,用于从 Google Play 商店中抓取应用程序数据。有关 API 的最新信息,请参阅模块页面。

任何与底层 Node.js 功能相关的问题、建议或问题都应提交给原始模块的开发者facundoolano 。

安装

首先,确保您的机器上安装了最新版本的Node.js。

然后,安装库:

pip install google-play-scraper-py

这还将包括所需的节点依赖项。

例子

import scraper

result = scraper.app(appId='com.google.android.apps.translate')
print(result)

结果:

{
  'adSupported': False,
  'androidVersion': 'VARY',
  'androidVersionText': 'Varies with device',
  'appId': 'com.google.android.apps.translate',
  'comments': [...],
  'contentRating': 'Everyone',
  'currency': 'USD',
  'description': ...,
  'descriptionHTML': ...,
  'developer': 'Google LLC',
  'developerAddress': '1600 Amphitheatre Parkway, Mountain View 94043',
  'developerEmail': 'translate-mobile-support@google.com',
  'developerId': '5700313618786177705',
  'developerInternalID': '5700313618786177705',
  'developerWebsite': 'http://support.google.com/translate',
  'editorsChoice': False,
  'free': True,
  'genre': 'Tools',
  'genreId': 'TOOLS',
  'headerImage': 'https://play-lh.googleusercontent.com/e4Sfy0cOmqpike76V6N6n-tDVbtbmt6MxbnbkKBZ_7hPHZRfsCeZhMBZK8eFDoDa1Vf-',
  'histogram': {'1': 458414,
               '2': 158469,
               '3': 420198,
               '4': 941431,
               '5': 5851958},
  'icon': 'https://play-lh.googleusercontent.com/ZrNeuKthBirZN7rrXPN1JmUbaG8ICy3kZSHt-WgSnREsJzo2txzCzjIoChlevMIQEA',
  'installs': '1,000,000,000+',
  'maxInstalls': 1004629541,
  'minInstalls': 1000000000,
  'offersIAP': False,
  'price': 0,
  'priceText': 'Free',
  'privacyPolicy': 'http://www.google.com/policies/privacy/',
  'ratings': 7830472,
  'recentChanges': 'Bug fixes and improvements',
  'reviews': 1924772,
  'score': 4.477567,
  'scoreText': '4.5',
  'screenshots': [...],
  'size': 'Varies with device',
  'summary': 'The world is closer than ever with over 100 languages',
  'title': 'Google Translate',
  'updated': 1616099487000,
  'url': 'https://play.google.com/store/apps/details?id=com.google.android.apps.translate&hl=en&gl=us',
  'version': 'Varies with device'
}

用法

可用方法:

  • app:检索应用程序的完整详细信息。
  • list:从 Google Play 的其中一个集合中检索应用程序列表。
  • search:检索按给定术语搜索结果的应用程序列表。
  • developer:返回给定开发者名称的应用程序列表。
  • 建议:给定一个字符串,最多返回五个建议来完成一个搜索查询词。
  • 评论:检索特定应用程序的评论页面。
  • Similar :返回与指定应用类似的应用列表
  • permissions:返回应用程序有权访问的权限列表。
  • 类别:从 Google Play 的下拉菜单中检索完整的类别列表。

应用程序

检索应用程序的完整详细信息。选项:

  • appId:应用程序的 Google Play id(?id=url 上的参数)。
  • lang(可选,默认为'en'):获取应用页面的两个字母的语言代码。
  • country(可选,默认为'us'):用于检索应用程序的两个字母国家代码。当应用程序仅在某些国家/地区可用时需要。

列表

从 Google Play 的其中一个集合中检索应用程序列表。选项:

  • collection(可选,默认为collection.TOP_FREE):将检索的 Google Play 集合。可以在这里找到可用的选项。
  • category(可选,默认为无类别):要过滤的应用类别。可以在这里找到可用的选项。
  • age(可选,默认为无年龄过滤器):过滤应用的年龄范围(仅适用于 FAMILY 及其子类别)。可用选项为age.FIVE_UNDERage.SIX_EIGHTage.NINE_UP
  • num(可选,默认为 500):要检索的应用程序数量。
  • lang(可选,默认为'en'):用于检索应用程序的两个字母语言代码。
  • country(可选,默认为'us'):用于检索应用程序的两个字母国家代码。
  • fullDetail(可选,默认为false):如果true,将为每个生成的应用程序发出额外请求以获取其完整详细信息。

搜索

检索按给定术语搜索结果的应用程序列表。选项:

  • term: 要搜索的词。
  • num(可选,默认为 20,最大值为 250):要检索的应用程序的数量。
  • lang(可选,默认为'en'):用于检索应用程序的两个字母语言代码。
  • country(可选,默认为'us'):用于检索应用程序的两个字母国家代码。
  • fullDetail(可选,默认为false):如果true,将为每个生成的应用程序发出额外请求以获取其完整详细信息。
  • price(可选,默认为all):允许控制结果应用程序是免费、付费还是两者兼有。
    • all: 免费和付费
    • free: 仅限免费应用
    • paid:仅限付费应用

开发商

按给定的开发人员名称返回应用程序列表。选项:

  • devId: 开发商的名字。
  • lang(可选,默认为'en'):获取应用列表的两个字母的语言代码。
  • country(可选,默认为'us'):用于检索应用程序的两个字母国家代码。当应用程序仅在某些国家/地区可用时需要。
  • num(可选,默认为 60):要检索的应用程序数量。
  • fullDetail(可选,默认为false):如果true,将为每个生成的应用程序发出额外请求以获取其完整详细信息。

建议

给定一个字符串最多返回五个建议来完成一个搜索查询词。选项:

  • term:获得建议的术语。
  • lang(可选,默认为'en'):用于检索建议的两个字母语言代码。
  • country(可选,默认为'us'):用于检索建议的两个字母的国家/地区代码。

评论

检索特定应用程序的评论页面。

请注意,此方法返回特定语言的评论(默认为英语),因此您需要尝试不同的语言才能获得更多评论。此外,Google Play 页面中显示的计数器是指应用程序获得的 1-5 星评分总数,而不是书面评论计数。因此,如果应用程序有 100k 的评分,不要指望使用这种方法获得 100k 的评论。

您可以通过发送参数 (ig 5000) 一次获取所有评论,或者通过将参数设置为 true 来获取num分页评论(每页 150 条) ;pagination

您必须选择最适合您的用例的方法。

通过设置num+ paginate, num 参数将被忽略,您将收到分页响应。

选项:

  • appId:Google Play 的唯一应用程序 ID。(例如 id=com.mojang.minecraftpe 映射到 Minecraft:Pocket Edition 游戏)。
  • lang(可选,默认为'en'):获取评论的两个字母的语言代码。
  • country(可选,默认为'us'):获取评论的两个字母的国家代码。
  • sort(可选,默认为sort.NEWEST):评论的排序方式。可接受的值为sort.NEWESTsort.RATINGsort.HELPFULNESS
  • num(可选,默认为100):要捕获的评论数量。
  • paginate(可选,默认为false):定义是否对结果进行分页
  • nextPaginationToken(可选,默认为null):下一个要分页的标记

相似的

返回与指定应用类似的应用列表。选项:

  • appId:应用程序的 Google Play id 以获取类似应用程序。
  • lang(可选,默认为'en'):用于检索应用程序的两个字母语言代码。
  • country(可选,默认为'us'):用于检索应用程序的两个字母国家代码。
  • fullDetail(可选,默认为false):如果true,将为每个生成的应用程序发出额外请求以获取其完整详细信息。

权限

返回应用程序有权访问的权限列表。

  • appId:要获取权限的应用程序的 Google Play id。
  • lang(可选,默认为'en'):获取权限的两个字母的语言代码。
  • short(可选,默认为false):如果true,将返回权限名称而不是权限/描述对象。

类别

从 Google Play 的下拉菜单中检索完整的类别列表。

  • 此方法没有选项

节流

爬虫上的所有方法都必须以一种或另一种形式访问 Google Play 服务器。在短时间内发出过多请求时(特别是在使用该fullDetail选项时),通常会达到 Google Play 的限制。这意味着请求开始获取带有验证码的状态 503 响应,以验证请求实体是否是人(不是:P)。在这些情况下,请求 IP 可以被禁止在一段时间内(通常大约一个小时)发出进一步的请求。

为了避免这种情况,所有方法现在都支持一个throttle属性,该属性定义了每秒尝试请求数量的上限。一旦达到该限制,将保留进一步的请求,直到第二次通过。

import scraper

scraper.search(term='panda', throttle=10)

默认情况下,不应用任何限制。

贡献

欢迎请求请求。对于重大更改,请先打开一个问题讨论您想要更改的内容。

请确保根据需要更新测试。

执照

麻省理工学院

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

google-play-scraper-py-0.3.0.tar.gz (10.5 kB 查看哈希

已上传 source

内置分布

google_play_scraper_py-0.3.0-py3-none-any.whl (12.6 kB 查看哈希

已上传 py3