Google Playストアのアプリ情報をスクレイピングする

メモ

指定した検索キーワードの新着アプリが出たら通知するようにしたいなと思ってスクレイピングを試していたのでそのメモ

import requests
from bs4 import BeautifulSoup


def search_app_list(self, keyword: str) -> list[str]:
    // 検索結果ページのURL
    search_url = f"https://play.google.com/store/search?q={keyword}"
    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36 Edg/117.0.2045.31'
    }
    // 検索結果ページのHTMLを取得
    response = requests.get(search_url, headers=headers)

    soup = BeautifulSoup(response_text, 'html.parser')

    // セレクタを指定してアプリ名の一覧を抽出
    app_names = []
    for app in soup.select('div[role="listitem"]'):
        element = app.select_one('div > div > div > a > div:nth-child(2) > div > div > span')
        if element is not None:
            app_name = element.text
            app_names.append(app_name)

    return app_names

requests.getを呼び出す時にヘッダにUAを付けていますが、UAが無いと想定した結果(実際にストアで検索した時の結果)が返ってこなかったので付けてます。

コメント

タイトルとURLをコピーしました