首先,Google Play 的robots.txt不会禁止带有基本“/store/apps”的页面。
如果您想爬取 Google Play,您需要开发自己的网络爬虫,解析 HTML 页面并提取您需要的应用元数据(例如标题、描述、价格等)。此主题已在此其他问题中讨论。有一些图书馆可以帮助解决这个问题,例如:
更难的部分是“找到”要抓取的应用页面。您可以使用 1) Google Play Sitemap或 2) 按照链接提取器文档中的说明,按照您在抓取的每个页面中找到的应用链接进行操作(以防您打算使用 Scrapy)。
另一种选择是使用基于 ProtoBuf 的开源库来获取有关应用程序的元数据,这里是项目的链接:https ://code.google.com/archive/p/android-market-api 。该库代表有效的 Google 帐户从 Google Play 获取应用程序元数据,但在这种情况下,您还需要一个爬虫来“查找”哪些应用程序可用并安排其元数据检索。这个其他开源项目可以帮助您:https ://code.google.com/archive/p/android-marketplace-crawler 。
如果您不想自己实现所有这些,您可以使用第三方托管服务通过基于 JSON 的 API 访问 Android 应用程序元数据。例如,42matters.com(我工作的公司)为 Android 和 iOS 提供了一个 API 来检索应用程序的元数据,这里有更多详细信息:
https://42matters.com/app-market-data
为了获取应用程序的标题、图标、描述、下载,您可以使用此处记录的“查找”端点:
https://42matters.com/docs/app-market-data/android/apps/lookup
这是“Angry Birds Space Premium”应用程序的 JSON 响应示例:
{
"package_name": "com.rovio.angrybirdsspace.premium",
"title": "Angry Birds Space Premium",
"description": "Play over 300 interstellar levels across 10 planets...",
"short_desc": "The #1 mobile game of all time blasts off into space!",
"rating": 4.3046236038208,
"category": "Arcade",
"cat_key": "GAME_ARCADE",
"cat_keys": [
"GAME_ARCADE",
"GAME",
"FAMILY_EDUCATION",
"FAMILY"
],
"price": "$1.15",
"downloads": "1,000,000 - 5,000,000",
"version": "2.2.1",
"content_rating": "Everyone",
"promo_video": "https://www.youtube.com/embed/g6AL9YqRHaI?ps=play&vq=large&rel=0&autohide=1&showinfo=0&autoplay=1",
"market_update": "2015-07-03T00:00:00+00:00",
"screenshots": [
"https://lh3.googleusercontent.com/ZmuBQzIy1G74coPrQ1R7fCeKdJmjTdpJhNrIHBOaFyM0N2EYdUPwZaQjnQUtiUDGmac=h310",
"https://lh3.googleusercontent.com/Xg2Aq70ZH0SnNhtSKH7xg9jCfisWgmmq3C7xQbx6YMhTVAIRqlRJeH8GYtjxapb_qR4=h310",
"https://lh3.googleusercontent.com/T4o5-2_UP82sj4fSSegbjrGmslNHlfvtEYuZacXMSOC55-7eyiKySw05lNF1QQGO2FeU=h310",
"https://lh3.googleusercontent.com/f2ennaLdivFu5cQQaVPKsRcWxB8FS5T4Bkoy3l0iPW9-GDDnTVRhvR5kz6l4m8FL1c8=h310",
"https://lh3.googleusercontent.com/H-9M03_-O9Df1nHr2-rUdjtk2aeBY3bAxnqSX3m2zh_aV8-K1t0qU1DxLXnK0GrDAw=h310"
],
"created": "2012-03-22T08:24:00+00:00",
"developer": "Rovio Entertainment Ltd.",
"number_ratings": 20812,
"price_currency": "$",
"icon": "https://lh3.ggpht.com/aQaIEGrmba1ENSEgUtArdm3yhJUug7BRWlu_WaspoJusZyHv1rjlWtYqe_qRjE_Kmh1E=w300",
"icon_72": "https://lh3.ggpht.com/aQaIEGrmba1ENSEgUtArdm3yhJUug7BRWlu_WaspoJusZyHv1rjlWtYqe_qRjE_Kmh1E=w72",
"market_url": "https://play.google.com/store/apps/details?id=com.rovio.angrybirdsspace.premium&referrer=utm_source%3D42matters.com%26utm_medium%3Dapi"
}
我希望这会有所帮助,否则请随时与我联系。我非常了解这个主题,可以为您指明正确的方向。
问候,
安德烈亚