こんにちは、ミナピピン(@python_mllover)です。今回はGoogleのナレッジパネルのAPIを業務で調査したのでその結果をブログにメモっておこうと思います。
関連記事:【Python】GoogleMapのスクレイピング情報から施設情報を取得する
関連記事:【Python】Custom Search APIを使ってGoogle検索をスクレイピングで自動取得する
ナレッジパネルとは
ナレッジパネルとはGoogle検索で有名な人物や施設名を検索した時に右側に表示されるパネルのことです。
- ナレッジパネルについて(https://support.google.com/knowledgepanel/answer/9163198?hl=ja&ref_topic=9164489)
- Google 検索のナレッジグラフとナレッジパネルとは(https://japan.googleblog.com/2020/05/KnowledgeGraphKnowledgePanel.html)
- ナレッジパネルは、検索された人物、場所、モノに関する主な事実を表示することでそれについてすばやく理解し、トピックに関する情報を簡単に調べられるように設計されています。ナレッジパネルの情報は、まるで巨大なバーチャル百科事典のような「ナレッジグラフ」に基づいています。
事前準備
・API鍵の取得
参考記事:【GCP】GoogleCloudPlatformでプロジェクトを作成してAPI鍵の作成&有効化する
・knowledgegraphAPIの有効化
API鍵が取得できたらいつもどおり、コンソール画面左メニューの「APIとサービス」⇒「ライブラリ」で適当にknowledgeとでも検索してknowledgegraphAPIを有効化します。
これで事前準備は完了です。
PythonでGoogle検索のナレッジパネル情報を取得する
APIドキュメント:https://developers.google.com/knowledge-graph
import json import urllib import urllib.request api_key = '自分のAPI鍵' query = 'イチロー' service_url = 'https://kgsearch.googleapis.com/v1/entities:search' params = { 'query': query, 'limit': 100, 'indent': True, 'key': api_key, 'languages':'ja' } url = service_url + '?' + urllib.parse.urlencode(params) response = json.loads(urllib.request.urlopen(url).read()) for element in response['itemListElement']: print(element['result']['name'] + ' (' + str(element['resultScore']) + ')')
公式ドキュメントに書いてあったサンプルコードは古くてそのまま実行するとエラーになったので一部書き直しています。
参考:https://teratail.com/questions/51894
参考:https://itips.krsw.biz/module-urllib-has-no-attribute-urlopen/
参考:https://technodaifuku.blogspot.com/2021/01/googleapigoogle-knowledge-graph-search.html
<実行結果>
イチロー (3831.06689453125) イチロー! (232.9041748046875) プロ野球死亡遊戯 (65.48111724853516) 天谷宗一郎 (42.90169143676758) 橋本 到 (36.56979370117188) イチローナガタ (29.96886253356934) 新田一郎 (25.08950233459473) イチロー・カワチ (18.96537208557129) 榎本葵 (16.53150367736816) イチローの流儀 (11.63956546783447) 走れ!イチロー (11.00639820098877) イチロー杯争奪学童軟式野球大会 (10.34025192260742) キューイチロー (8.707777976989746) 実践型クリティカルシンキング (8.031513214111328) プロ野球をここまでダメにした9人 (7.804562568664551) 成功する人は心配性 (7.46633768081665)
イチロー以外にも、イチロー関連の著書もヒットしています。ただこのAPIはイチローレベルの超有名人ならAPIのレスポンスにちゃんと出てくるのですが、そこまで有名でない企業などGoogle検索ではナレッジパネルで表示されていてもAPI経由だと検索にヒットしないパターンが多いので、実用的かと言われるとかなり微妙だと思います。ただ調べた時間をそのまま無駄にするのもアレなので記事にして供養しておきます。
では~
コメント