0

Google Play で自分のアプリに対するユーザーによる星の投票を表示したいと考えています。それに対する解決策はありますか?

4

4 に答える 4

1

残念ながら、現在、開発者統計用の API はありません。Andlyiticsのようなアプリはスクリーン スクレイピングを使用するため、コンソールが変更されるたびに更新する必要があります。

そこからプレイストアページに続きます:

Google は、ダウンロードと評価の統計情報を取得するための安定した API を提供していないことに注意してください。そのため、Android マーケットで何かが変更された場合、Andlytics が正しく動作しない可能性があります。その場合は、変更に追いつくまでしばらくお待ちください。

于 2012-11-30T08:27:07.677 に答える
1

これを行う 1 つの方法は、HTML にあるインライン JSON からデータを解析することです。beautifulsouplxmlrequestsライブラリ、および正規表現を使用して、Python でアプリのレビュー数と評価をスクレイピングするアプローチの例。

オンライン IDE のコードと完全な例:

# Super-Mario game is being scraped in this example:
# https://play.google.com/store/apps/details?id=com.nintendo.zara&gl=US

from bs4 import BeautifulSoup
import requests, lxml, re, json

params = {
    "id": "com.nintendo.zara", # app name
    "hl": "en",                # language
    "gl": "us"                 # country
}

headers = {
    "User-Agent":
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3538.102 Safari/537.36"
}

html = requests.get("https://play.google.com/store/apps/details", params=params, headers=headers, timeout=10)
soup = BeautifulSoup(html.text, "lxml")

# [12] index <script> position is not changing. Other <script> tags position are changing.
# [12] index is a basic app information.
# https://regex101.com/r/DrK0ih/1
basic_app_info = json.loads(re.findall(r"<script nonce=\".*\" type=\"application/ld\+json\">(.*?)</script>", str(soup.select("script")[12]), re.DOTALL)[0])

app_rating = round(float(basic_app_info["aggregateRating"]["ratingValue"]), 1)  # 4.287856 -> 4.3
app_reviews = basic_app_info["aggregateRating"]["ratingCount"]
print(app_rating, app_reviews, sep="\n")

# 4.0
# 1619960

検索パラメーターを辞書として作成します。

# https://docs.python-requests.org/en/master/user/quickstart/#passing-parameters-in-urls
params = {
    "id": "com.nintendo.zara", # app name
    "hl": "en",                # language
    "gl": "us"                 # country
}

「実際の」ユーザーの訪問として機能するヘッダーを作成して、Google がリクエストをすぐにボット リクエストとして処理しないようにします。

# https://docs.python-requests.org/en/master/user/quickstart/#custom-headers
headers = {
    "User-Agent":
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3538.102 Safari/537.36"
}

paramsリクエストを作成し、リクエストにおよびを渡し、 HTML が処理および解析されるオブジェクトheadersを作成します。BeautifulSoup

html = requests.get("https://play.google.com/store/apps/details", params=params, headers=headers, timeout=10)
soup = BeautifulSoup(html.text, "lxml")

タグを検索し、すべての基本的なアプリ情報が配置されているindexタグ<scprit>から必要なデータを解析してから、正規表現を使用して JSON 部分のみを解析します。[12]<scprit>

# https://regex101.com/r/DrK0ih/1
basic_app_info = json.loads(re.findall(r"<script nonce=\".*\" type=\"application/ld\+json\">(.*?)</script>", str(soup.select("script")[12]), re.DOTALL)[0])
  • json.loads()JSON 文字列を Python 辞書に変換します。

実際の JSON レスポンスから正規表現を介してデータを解析することは、CSS セレクターを介してスクレイピングするよりも安全です。CSS セレクターが変更される可能性があり、この場合、データをスクレイピングするためにページをレンダリングする必要があり、ブラウザー オートメーションを使用すると遅くなります。

データにアクセスして印刷します。

app_rating = round(float(basic_app_info["aggregateRating"]["ratingValue"]), 1)  # 4.287856 -> 4.3
app_reviews = basic_app_info["aggregateRating"]["ratingCount"]
print(app_rating, app_reviews, sep="\n")

# 4.0
# 1619960

Python でより多くのデータをスクレイピングする方法を理解したい場合は、Scrape Google Play Store App in Pythonブログ投稿で残りを読むことができます。

完全なソリューションを使用したい場合は、無料google-play-scraperの Pythonまたはgoogle-play-scraperJavaScript 用に使用するか、SerpAPI のGoogle Play Store APIを使用できます。これは有料の API で、スクレイピング、ブロックのバイパス、ユーザーのスケーリングを処理する無料プランがあります。

于 2022-02-03T09:44:38.833 に答える
0

https://play.google.com/store/apps/details?id=にアクセスしてください

ページの右側と下部に評価が表示されます。必要に応じて、ユーザー レビューを参照してください。[説明] の上に表示されている [ユーザー レビュー] タブをクリックします。

于 2012-11-30T08:26:27.543 に答える
0

それはとても簡単です。Google Play ストアに移動:https://play.google.com/store?hl=ja

トップバーであなたを検索します。あなたのアプリが見つかったら、星の投票を見ることができます。

お役に立てれば。

于 2012-11-30T08:32:09.513 に答える