Python GoogleTrend 〜トレンドを取得する、ワンポイントレッスン〜

イントロダクション

最近の流行りを調査すべくGoogleトレンドを調べて見ました。そしたらR言語、Python、Node.jsでのAPIはすぐに見つかったのだけれどJavaは見つかりませんでした。。。なのでPythonからトレンドを取得して結果をJavaでモチョモチョとやろうと思います。

pytrendsを使う

Pythonなので「pip」でインストールできます。Macは標準装備なのでピップします。

$pip3 install pytrends

こんな感じでインストール完了、「pip3」コマンドを使用します。間違えないようにしてください。


参考にしたサイトはこちらです。そして実行した結果を下に記載します。

takunojiMacBook-Pro:python takk$ python3
Python 3.7.1 (default, Nov  6 2018, 18:49:54) 
[Clang 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import pytrends
>>> from pytrends.request TrendReq
  File "", line 1
    from pytrends.request TrendReq
                                 ^
SyntaxError: invalid syntax
>>> from pytrends.request import TrendReq
>>> pytrends = TrendReq(hl='ja_JP', tz=360)
>>> kw_list = ["Java", "Ptrhon", "JavaScript"]
>>> pytrends.build(kw_list, cat=0, timeframe='today 5-y', geo='JP', gprop='')
Traceback (most recent call last):
  File "", line 1, in 
AttributeError: 'TrendReq' object has no attribute 'build'
>>> pytrends.build_payload(kw_list, cat=0, timeframe='today 5-y', geo='JP', gprop='')
>>> pytrends.related_queries()
{'Java': {'top':               query  value
0            string    100
1       java string     96
2           eclipse     79
3      eclipse java     78
4           配列 java     73
5         java list     62
6          java クラス     60
7      android java     59
8         java 文字 列     58
9       java インストール     57
10  java javascript     48
11         java for     45
12       javascript     44
13      java oracle     39
14           oracle     39
15        java メソッド     38
16      java ダウンロード     38
17         java int     38
18       java バージョン     37
19         java api     37
20         java map     36
21        java file     35
22          java 実行     35
23          java 入門     34
24        java date     31, 'rising':                                         query  value
0                                   java 有償 化   7550
1                              android studio   5200
2                                  java ラムダ 式   1500
3                                    java 1.8   1400
4         java セキュリティ によって ブロック され た アプリケーション   1300
5                                 java silver    800
6                                   java ブロンズ    650
7                                 java bronze    450
8                                 java stream    350
9                                      spring    250
10                                java spring    200
11                              java map 初期 化    200
12                                  java json    180
13                            java jsonobject    140
14                               java scanner    140
15                              java contains    120
16                               java foreach    120
17                            mac java インストール     90
18                                 java regex     90
19                             java try catch     90
20                               java isempty     80
21  could not create the java virtual machine     80
22                             java list 初期 化     80
23                               java 文字 列 結合     70
24                               java install     70}
, 'Ptrhon': {'top': None, 'rising': None}
, 'JavaScript': {'top':                   query  value
0                jquery    100
1       javascript html     85
2                  html     83
3         javascript 配列     62
4                    js     46
5                  java     45
6       javascript 文字 列     45
7       java javascript     45
8                   css     38
9        php javascript     31
10                  php     30
11        javascript 関数     26
12      javascript イベント     25
13     javascript array     25
14        javascript 変数     24
15      javascript json     24
16       for javascript     24
17    chrome javascript     22
18        ie javascript     22
19  javascript function     21
20                正規 表現     20
21    javascript オブジェクト     19
22      javascript 読み込み     19
23     javascript 正規 表現     19
24       javascript api     19, 'rising':                         query  value
0          javascript promise   5950
1           javascript moment   2700
2                   angularjs   1800
3                   bootstrap    700
4     javascript array filter    550
5              javascript let    500
6                     json 整形    300
7       javascript json parse    250
8          javascript require    250
9           javascript filter    250
10           javascript const    200
11     javascript array slice    200
12       javascript 文字 列 切り出し    200
13     chrome javascript デバッグ    200
14     javascript date format    190
15          javascript concat    180
16        javascript 三 項 演算 子    180
17     javascript console.log    180
18         javascript console    160
19          javascript splice    160
20             mdn javascript    160
21      javascript use strict    150
22        javascript 連想 配列 削除    140
23          javascript 配列 ループ    140
24  javascript undefined null    140}}

こんな感じで取得できました。Javaからコマンド実行するには

  1. 上のPythonスクリプトをpyファイル(Trends.py)に記載してやり
  2. Javaでコマンド"/usr/local/python3 Trends.py"を起動、結果を取得

のようにしてやればおっけ。

これで検索結果の上位部分を取り出してやれば流行を追いかけることができそうだ(笑)ちなみに楽天プラグインを「流行」で検索して見たらこんなのが出てきた。