从 Google Play 商店抓取应用程序数据。
项目描述
google-play-scraper-py
围绕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_UNDER
、age.SIX_EIGHT
、age.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.NEWEST
:sort.RATING
和sort.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)
默认情况下,不应用任何限制。
贡献
欢迎请求请求。对于重大更改,请先打开一个问题讨论您想要更改的内容。
请确保根据需要更新测试。
执照
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。