Google Trendsの分析をプログラムでやりたい人向けの記事です。
プログラムの言語は、Pythonです。
データ分析をするなら、Pythonですね。
私は、PHPでWebシステムを開発します。
しかし、データ分析はPythonで行います。
Python使いでない方は、今回をきっかけにPythonを使ってはどうでしょう?
Anacondaという開発環境をインストールすれば、簡単にPythonを使えます。
Anacondaは、WindowsにもMacにもインストール可能です。
さて、この記事の本題はpytrendsのインストールです。
pytrendsは、Pythonのライブラリです。
本記事の内容
- pytrendsのインストール
- pytrendsの動作確認
上記の内容に沿っていけば、pytrendsをインストールできるようになります。
ただ、途中でハマるポイントがあります。
しかし、そのハマりポイントの解決方法を詳しく説明しています。
だから、安心して読み進めてください。
pytrendsのインストール
pytrendsとは?
公式ページ
https://pypi.org/project/pytrends/
Google TrendsへアクセスするPythonのライブラリです。
2020年5月21日時点では、pytrends 4.7.2が最新バージョンとなります。
このライブラリを利用すれば、簡単にGoogle Trendsのデータを取得できます。
ただし、pytrendsはGoogleには公認されていません。
非公式ツールです。
そのため、いきなり動かなくなるリスクはあります。
一般的には、このようなライブラリはそういうものですね。
だから、割り切って利用しましょう。
インストール・動作の前提条件は以下。
- Pythonのバージョンが、Python2系なら2.7以上 or Python3系なら3.3以上
- Requests, lxml, Pandasモジュール
Pythonのバージョン確認
次のコードを実行すれば、バージョンが確認可能。
import sys print(sys.version)
実行。
ちなみに、私はSpyderをPythonの開発環境として利用しています。
3.7.3 (default, Mar 27 2019, 17:13:21) [MSC v.1915 64 bit (AMD64)]
3.7.3なので、Pythonのバージョンは問題ありません。
必要モジュールの確認
Requests
Requestsは、HTTPアクセスを行うライブラリです。Google TrendsへHTTPアクセスするために必要なのでしょう。
確認方法は、Pythonのバージョン確認を同じようにコードを実行します。
実際にコードを動かしてみることが、簡単で確実な確認方法です。
import requests r = requests.get("https://example.com/") print(r.text)
「Example Domain」のhtmlソースが取得できれば、Requestsは利用可能です。
エラーが出る場合は、インストールから試しましょう。
pip install requests
lxml
lxmlは、xmlやhtmlを扱うライブラリ。
取得したデータ(xmlやhtml)から値を抜き出すために必要なのでしょう。
Requestsモジュールの動作確認で利用したコードに追記します。
アクセス先ページのタイトルを取得して表示するプログラムです。
import requests import lxml.html r = requests.get("https://example.com/") html = lxml.html.fromstring(r.text) print(html.find(".//title").text)
「Example Domain」と表示されれば、lxmlは利用可能です。
エラーが出る場合は、インストールから試しましょう。
pip install lxml
Pandas
Pandasは、データを効率的に解析するためのライブラリです。
データ分析結果を表示するグラフを作成することも可能です。
pytrendsでは、グラフ出力が機能として存在します。
その機能のために、Pandasが利用されているということでしょうか?
Pandasには、バージョン確認用の関数が用意されています。
次は、Pandasのバージョンを表示するプログラムです。
import pandas as pd print(pd.__version__)
実行。
0.24.2
上記のようにバージョンが表示されれば、Pandasは利用可能です。
エラーが出る場合は、インストールから試しましょう。
pip install pandas
pytrendsのインストール
前提条件はクリアできていれば、後は簡単です。
pytrendsライブラリのインストール
pip install pytrends
次のように表示されれば、インストール成功です。
Successfully built pytrends Installing collected packages: pytrends Successfully installed pytrends-4.7.2
pytrendsの動作確認
次は、pytrendsの動作確認です。
以下のコードを実行します。
内容は、コメントに書いています。
# Pytrendsのモジュール読み込み from pytrends.request import TrendReq # Google Trend APIへ接続(続言語とタイムゾーンを指定) pytrends = TrendReq(hl='ja-JP', tz=360) # 転送データの作成(検索したいキーワード、期間、地域) kw_list = ["Twitter"] pytrends.build_payload(kw_list, timeframe='2010-01-01 2020-04-30', geo='JP') # 時系列データ取得 df = pytrends.interest_over_time() # 取得した時系列データをグラフ化 df.plot(figsize=(15, 3), lw=.7)
グラフが表示されれば、pytrendsの動作確認が完了です。
しかし、次のようなエラーが出る場合があります。
File "C:\anaconda\lib\site-packages\pytrends\request.py", line 13, in <module> from pandas.io.json._normalize import nested_to_recordModuleNotFoundError: No module named 'pandas.io.json._normalize'
このエラーを調べれば、結構頻繁に出ているようです。
エラーの内容は、request.py(Requestsライブラリ)上でのモジュール読み込みエラーです。
「pandas.io.json._normalize」というモジュールをインポートできていません。
解決方法は、「pandas.io.json._normalize」を「pandas.io.json.normalize」に変更するだけです。
request.py上の13行目を修正します。
normalizeの前にある「_」アンダースペースを削除します。
そして、request.pyを保存。
再度、pytrendsの動作確認コードを実行します。
実行後、次のようなグラフが出れば、成功です。
2010年1月1日から2020年4月30日の間における「Twitter」の検索トレンド(日本)が表示されています。
上手く動作しているようです。
まとめ
pytrendsは、Pythonのライブラリです。
pytrendsを利用すれば、Google Trendsのデータにアクセスできます。
この記事では、pytrendsのインストール方法を説明してきました。
説明通りに進めていけば、インストールは成功します。
そして、pytrendsの動作確認のために、「Twitter」の検索トレンドをグラフで出力しました。
このグラフが、興味深いものです。
pytrends云々は関係なく。
Twitterは、2011年にピークを迎えています。
2011年の初めの頃ですね。
それ以降は、徐々に検索される回数は減っています。
それだけTwitterが浸透したと言えるのでしょう。
しかし、2020年の3月ぐらいから盛り返しています。
これは、コロナの影響だと思います。
多くの人々が、自粛のために家で過ごすことになりました。
そして、主に情報収集のためにTwitterを利用しようしたと思われます。
おそらく、新規ユーザが多く増えているのでしょう。
このことがキッカケとなり、Twitterは第二のピークを迎えています。
今後、コロナの収束に伴い、このトレンドがどうなるのかが興味深いです。