📌  相关文章
📜  在 Node.js 中使用 google-play-scraper 对 Android 应用程序进行数据抓取

📅  最后修改于: 2022-05-13 01:56:18.664000             🧑  作者: Mango

在 Node.js 中使用 google-play-scraper 对 Android 应用程序进行数据抓取

最常用的网页抓取方法是我们在Python中使用selenium和 beautifulsoup 的方法。尽管它可以帮助我们完成各种任务,但如果我们特别希望从 google play 商店中提取有关已经存在的 android 应用程序的信息以用于研究目的甚至是自用,那么还有另一种处理方式。

google-play-scraper是一个 Node.js 模块,它通过提供使我们的工作变得简单的方法来帮助从 Google Play 商店中抓取 App 数据。

安装:

npm install google-play-scraper

重要方法:
1. app:它返回与该应用程序关联的全部数据。

参数:

  • appId:与 Google Play 上的应用关联的 ID。可以在 URL 的“?id=”中看到。
  • lang:它是一个可选参数。英语的默认值为“en”。如果我们希望以不同的语言获取应用数据。我们可以为该参数提供该语言的两字母代码。
  • country:也是一个可选参数。对于美利坚合众国,它的默认值为“我们”。当我们正在查看的应用程序仅在特定国家/地区可用时,此参数很有帮助。

例子:

var gPlayScraper = require('google-play-scraper');
  
gPlayScraper.app({appId: 'free.programming.programming'})
    .then(console.log, console.log);

输出:

[ { title: 'Learn DS & Algo, Programming Interview Preparation',
  description:
   'GeeksforGeeks is a one-stop destination for programmers.
   The app features 20000+ Programming Questions, 40, 000+....',
  descriptionHTML:
   'GeeksforGeeks is a one-stop destination for programmers.....',
  summary:
   'Learn Data Structures Algorithms, C Programming, C++,
    Java, Python, JS, Aptitude',
  installs: '500, 000+',
  minInstalls: 500000,
  score: 4.6594124,
  ...
  developer: 'GeeksforGeeks',
  developerId: 'GeeksforGeeks',
  developerEmail: 'support@geeksforgeeks.org',
  developerWebsite: 'https://www.geeksforgeeks.org/',
  developerAddress: 'Noida, UP, India',
  privacyPolicy: 'https://www.geeksforgeeks.org/privacy-policy/',
  developerInternalID: '5323597028845965498',
  genre: 'Education',
  genreId: 'EDUCATION',
  .....' ],
  .....
  url:
   'https://play.google.com/store/apps/details?id=free.programming.programming&hl=en&gl=us' } ]

2. 搜索:它检索导致按给定术语搜索的应用程序列表。

参数:

  • term:包含搜索词。
  • num:我们希望检索的应用程序的数量。它是一个可选参数,默认值为20。注意该参数的最大值可以是250。
  • lang:它是一个可选参数。英语的默认值为“en”。如果我们希望以不同的语言获取应用程序数据,我们可以向此参数提供该语言的两个字母代码。
  • country:也是一个可选参数。对于美利坚合众国,它的默认值为“我们”。当我们正在查看的应用程序仅在特定国家/地区可用时,此参数很有帮助。
  • price:我们可以传递“all”来返回免费和付费应用程序,“free”返回免费应用程序,“paid”返回付费应用程序。

例子:

var gPlayScraper = require('google-play-scraper');
  
gPlayScraper.search({
    term: "tech",
    num: 2
  }).then(console.log, console.log);

输出:

[ { title: 'CNET: Best Tech News, Reviews, Videos & Deals',
    appId: 'com.cbsinteractive.cnet',
    url:
     'https://play.google.com/store/apps/details?id=com.cbsinteractive.cnet',
    icon:
     'https://lh3.googleusercontent.com/DeIoPrQ4jp2STHmWzbWI8Ss8JRnPgFrmDoOLje2PXcpA7CQN8hFxOvxXCSOOEGLUUQ',
    developer: 'CBS Interactive, Inc.',
    developerId: 'CBS+Interactive, +Inc.',
    priceText: 'FREE',
    currency: undefined,
    price: 0,
    free: true,
    summary:
     'Breaking technology news and expert product how-tos,
      comparisons, advice & tips',
    scoreText: '4.0',
    score: 4 },
  { title: 'Tech Coach',
    appId: 'com.asurion.solutohome.verizon',
    ..
    score: 4.4551244 } ]

3. 建议:它接受一个字符串输入并返回一个包含五个建议的列表来完成我们的搜索查询。

参数:

  • term:我们想要获得建议的术语。
  • lang:它是一个可选参数。英语的默认值为“en”。如果我们希望以不同的语言获取应用程序数据,我们可以向此参数提供该语言的两个字母代码。
  • country:也是一个可选参数。对于美利坚合众国,它的默认值为“我们”。当我们正在查看的应用程序仅在特定国家/地区可用时,此参数很有帮助。

例子:

var gPlayScraper = require('google-play-scraper');
  
gPlayScraper.suggest({term: 'algorithms'}).then(console.log);

输出:

[ 'algorithms',
  'algorithms to live by',
  'algorithms and data structures',
  'algorithms explained and animated',
  "algorithms for rubik's cube" ]

4. 权限:它返回应用程序可以访问的权限列表。

参数:

  • appId:与 Google Play 上的应用关联的 ID。可以在 URL 的“?id=”中看到。
  • lang:它是一个可选参数。英语的默认值为“en”。如果我们希望以不同的语言获取应用程序数据,我们可以向此参数提供该语言的两个字母代码。

例子:

var gPlayScraper = require('google-play-scraper');
  
 // Let's analyse the permissions requested by SHAREit
gPlayScraper.permissions({appId: 'com.lenovo.anyshare.gps'}).
     .then(console.log, console.log);

输出:

[ { permission: 'take pictures and videos', type: 'Camera' },
  { permission:
     "add or modify calendar events and send email to
      guests without owners' knowledge",
    type: 'Calendar' },
  { permission: 'record audio', type: 'Microphone' },
  { permission: 'read sensitive log data',
    type: 'Device & app history' },
  { permission: 'retrieve running apps',
    type: 'Device & app history' },
  ....
  { permission: 'send sticky broadcast', type: 'Other' },
  { permission: 'expand/collapse status bar', type: 'Other' },
  { permission: 'control vibration', type: 'Other' } ]

您可以查看的其他方法是:

  • list:它返回来自 Google Play 集合之一的应用程序列表。
  • 开发者:它返回给定开发者名称的应用程序列表。
  • 评论:它返回一个完整的页面,其中包含当前指定应用程序的评论。
  • 相似:它返回与指定应用相似的应用列表。
  • 类别:它返回 Google Play 商店中可用的类别列表。