【トレンド分析】GoogleトレンドのデータをPythonで取得してみよう!

Python

*記事に掲載されているコードは2023年8月現在問題なく起動します。(検証済み)

こんにちは! Nocky(のっきー)です!

今回はGoogleトレンドのデータをPythonのライブラリ【pytrends】についてご紹介します。

皆さんは Google Trendsをご存知でしょうか? Googleの検索データを活用して世界のトレンドを取得することができるサービスです。

今回、紹介するpytrendsを使うことでいちいちWebサイトで検索してデータを取得しなくても、トレンドを取得できます。

スポンサーリンク

pytrendsで取得できるデータ

pytrendsでは下記のようなデータを取得することができます。

検索数の推移 (interest_over_time)
都道府県別の検索数(interest_by_region)
関連キーワード (related_queries)
関連トピック (related_topic)
急上昇キーワード (trending_searches)
年間のトレンドキワード  (top_charts)

取得できるデータは実数ではなく、最大値を100とした統計的に加工されたデータです。しかし、膨大なGoogleの検索データを元とした数値なので、トレンドを知り、分析するには十分だと思います。

pytrendsはGoogleの公式のライブラリではないため、急に使えなくなる可能性があります。その点にはご注意ください!公式サイトなどチェックしてみてください。

pytrendsのインストール

まずはpyterendsをインストールしましょう! 

ターミナルで下記を入力してインストールしてください。

pip install pytrends

Google colaboratoryをで実行する方はノートブックで下記を入力してインストールしてください!

!を文頭に入れればOKです!

!pip install pytrends

pytrendsでデータ取得

それでは、pytrendsでデータを取得する方法をみていきましょう!

まずはGoogleトレンドでキーワードを取得する設定していきます。

from pytrends.request import TrendReq

pytrends = TrendReq(hl='ja-JP', tz=-540)
keyword = "python"
kw_list = [keyword]
pytrends.build_payload(kw_list, timeframe='2021-11-01 2021-12-01', geo='JP')

googleトレンドに接続するための設定を行います。
下記はhlはhost language、tzはtime zoneの設定です。
hl=’ja-JP’で日本語、tz=-540で標準時間より9時間の時差があるを設定しています。

pytrends = TrendReq(hl='ja-JP', tz=-540)

検索するキーワードを設定します。

keyword = "python"
kw_list = [keyword]

下記で実際にデータを取得していきます。 timeframeで期間の設定、geoで地域を設定しています。

pytrends.build_payload(kw_list, timeframe='2021-11-01 2021-12-01', geo='JP')

検索数の推移 (interest_over_time)

検索数の推移取得するのは下記で可能です。検索数を日別で取得できます。

pytrends.interest_over_time()

下記をコピペして、keyword = “python”を取得したいキーワードに変更してください。
必要ないisPartialというカラムがあるので、drop(‘isPartial’,axis=1)で削除します。

from pytrends.request import TrendReq
import matplotlib.pyplot as plt

pytrends = TrendReq(hl='ja-JP', tz=-540)
keyword = "python"
kw_list = [keyword]
pytrends.build_payload(kw_list, timeframe='2021-11-01 2021-12-01', geo='JP')
trend = pytrends.interest_over_time().drop('isPartial',axis=1)

これで検索数を抽出しました。 ちゃんと検索数が抽出できているかグラフで見てみましょう。

plt.rcParams['figure.figsize'] = 35, 5
trend.plot.bar()

検索数の推移をグラフ化すると下記のようになります。

都道府県別の検索数(interest_by_region)

都道府県別の検索数取得するのは下記で可能です。

pytrends.interest_by_region

下記をコピペして、keyword = “〇〇○”を取得したいキーワードに変更すれば地域別のデータを取得できます。

from pytrends.request import TrendReq

pytrends = TrendReq(hl='ja-JP', tz=-540)
keyword = "python"
kw_list = [keyword]
pytrends.build_payload(kw_list, timeframe='2021-11-01 2021-12-01', geo='JP')
trends = pytrends.interest_by_region(resolution='JP',inc_geo_code=True).sort_values('geoCode')
trends

interest_by_regionの設定について

resolution=’JP’で地域を日本に設定、inc_geo_code=Trueにすることでgeocodeを表示させています。

sort_values(‘geoCode’)で表示させるときにgeocodeを基準に表示させる設定をしています。

trends = pytrends.interest_by_region(resolution='JP',inc_geo_code=True).sort_values('geoCode')

sort_values(‘python’,ascending=False)を設定するとgeocodeではなく、pythonの検索ボリューム順で表が表示されるようになります。

ascending=Falseがないとボリュームが少ない順に表示されます。

trends = pytrends.interest_by_region(resolution='JP',inc_geo_code=True).sort_values('python',ascending=False)

検索ボリューム順に表示させると上記のようになります。 Pythonの検索ボリュームが東京の次が京都なのは大学などで活用されているのかな?など情報が読み取れますね。

関連キーワード (related_queries)

関連キーワード取得するのは下記で可能です。

pytrends.related_queries()

下記をコピペして、keyword = “〇〇○”を取得したいキーワードに変更すれば関連キーワードを取得できます。今回はmacの関連キーワードを取得します。

from pytrends.request import TrendReq

pytrends = TrendReq(hl='ja-JP', tz=-540)
keyword = "mac"
kw_list = [keyword]
pytrends.build_payload(kw_list, timeframe='2021-11-01 2021-12-01', geo='JP')
q = pytrends.related_queries()

関連キーワードには2つの項目を取得できます。

  • 急上昇関連キーワード
  • 関連キーワード

です。急上昇関連キーワードは検索の実数?と思えるボリュームが取得できます。最大値が100ではありません。

急上昇キーワード

q[kw_list[0]]['rising']

関連キーワード

q[kw_list[0]]['top']

変数の中身はこのように辞書方のデータになっています。

関連トピック (related_topic)

関連トピックを取得するのは下記で可能です。

関連トピックは関連キーワードより広いカテゴリーの情報が取得できます。

pytrends.related_topics()

下記をコピペして、keyword = “〇〇○”を取得したいキーワードに変更すれば関連トピックを取得できます。

from pytrends.request import TrendReq

pytrends = TrendReq(hl='ja-JP', tz=-540)
keyword = "python"
kw_list = [keyword]
pytrends.build_payload(kw_list, timeframe='2021-11-01 2021-12-01', geo='JP')

topics = pytrends.related_topics()

関連トピックも2つの項目を取得できます。

  • 急上昇関連トピック
  • 関連トピック
topics[kw_list[0]]['rising']
topics[kw_list[0]]['top']

急上昇キーワード (trending_searches)

急上昇キーワードを取得するのは下記で可能です。

pytrends.trending_searches(pn='japan')

下記をコピペすれば、すぐに急上昇キーワードを取得できます。

from pytrends.request import TrendReq

pytrends = TrendReq(hl='ja-JP', tz=-540)
pytrends.trending_searches(pn='japan')

急上昇キーワードTop20が取得できます。

年間のトレンドキーワード  (top_charts)

年間のトレンドキーワードを取得するのは下記で可能です。

pytrends.top_charts()

下記をコピペすれば、すぐに年間のトレンドキーワードを取得できます。

from pytrends.request import TrendReq

pytrends = TrendReq(hl='ja-JP', tz=-540)
date = 2021
pytrends.top_charts(date, hl='ja-jp', tz=540, geo='JP')
date = 2021
pytrends.top_charts(date, hl='ja-jp', tz=540, geo='JP')

pytrends.top_charts(取得したい年, hl=’日本語’, tz=9時間差, geo=’日本’)を設定したています。

この部分を日本以外に設定すれば、世界中のトレンドを取得できます。

是非、試してみてください!

終わりに

いかがでしたでしょうか!?
Googleトレンドのデータを取得できるPythonのライブラリ【pytrends】について紹介してきました!

検索データを活用したトレンド分析に役立ててみてください!

それではまた、他の記事で会いましょう〜!

おすすめ記事

この記事を書いた人
Nocky

メガベンチャーで働くマーケティング×データアナリスト的なポジションのサラリーマン

マーケティング×データサイエンスについての情報をメインに投稿。
プログラミング(Python、Javascript)、統計学、マーケティング、WEBデザインなどについて学び、アウトプットしていきます!!

Nockyをフォローする
Pythonプログラミング
スポンサーリンク
シェアする
error: Content is protected !!
タイトルとURLをコピーしました