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は第二のピークを迎えています。
今後、コロナの収束に伴い、このトレンドがどうなるのかが興味深いです。 
  
  
  
  

