SerpApiの使い方【Python】インストールから検索順位チェックまで
概要
ページが検索エンジンに表示されているか確認するために、PythonでSerpApiを使用してみました。
googleの検索エンジンに自分のページが掲載されているか自動で確認したくて色々なサービスを比較し、無料で実装できるサービスを探していました。
そこで見つけたのがSerpApiです。
無料プランで月250回まで検索でき、アカウント登録とAPIキーだけで簡単に実装できます。
使い方を自作のサンプルコードをベースに説明していくので、是非見ていってください(^^b
それではやっていきましょう!
目次
SerpApiとは
SerpApiは、Googleなどの検索エンジンの検索結果(SERP)をJSON形式で取得できるAPIサービスです。
通常、検索結果をプログラムで取得しようとするとスクレイピングが必要で手間がかかりますが、SerpApiならリクエストを投げるだけで順位やURLなどの結果を構造化データで受け取れます。
無料プランで月250回まで使えるので、個人サイトの掲載確認用途なら十分に試せます。
前準備
SerpApiのAPIキー取得方法(serpapi_key)
SerpApiの公式サイトで会員登録を行いAPIキーを取得します。
まず下記のサイトにアクセスし、会員登録を行います
SerpApi 公式サイトserpapi.com
登録にはメールアドレスと電話番号が必要です。
それぞれの認証が終わったら登録完了します。
登録後はAPIキーを発行して、API Keyタブから取得します。
SerpApiのPythonライブラリをpip installする(google-search-results)
SerpApiで使用するライブラリ「google-search-results」をインストールします。
コマンド
1 | pip install google-search-results |
pip install serpapiとの違い
「pip install serpapi」で入るserpapiパッケージは、この記事で使うgoogle-search-resultsとは別のパッケージです。
この記事のサンプルコードはgoogle-search-resultsをインストールして、from serpapi import GoogleSearchで読み込む書き方です。
一方、pip install serpapiで入る新しいパッケージは、import serpapiしてserpapi.Clientから検索する書き方になっています。
新しいserpapiパッケージの書き方
1 | import serpapi |
公式リポジトリでは、google-search-resultsは今後serpapi(serpapi-python)に置き換わって非推奨になる予定と案内されています。
これから新しく作る場合は、公式のREADMEで最新の書き方を確認してください。
google-search-results-python(GitHub)github.com
serpapi-python(GitHub)github.com
SerpApiで検索順位をチェックするPythonサンプルコード
サンプルコードでは、自分のドメインが特定のワードの検索結果でトップ10位以内に表示されているかを確認しています。
ワードはリストに格納しており、リスト内のワードを1度の実行ですべて確認します。
結果は下記のファイルに格納されます。
- ・APIの戻り値JSON
- APIの戻り値(JSON)をJSONファイルに格納
- ・JSON解析結果CSV
- JSONを解析した結果(トップ10位以内の検索結果の内容)
- ・サマリCSV
- 検索ワードごとに自分のドメインが存在した場合の順位
serpapi_check.py
1 | import os |
サンプルコードの要点(from serpapi import GoogleSearchの使い方)
定数
定数を設定します。
自分の環境に合わせて設定してみてください。
※ここだけ設定すればこのソースは動作するはずです。
serpapi_check.py
1 | SERPAPI_KEY = "[APIキー]" # ここに API キー貼り付け |
- SERPAPI_KEY
- SerpApi登録後に取得したAPIキー
- DOMAIN
- 自サイトのドメイン名
- DATA_DIR
- 結果の出力ディレクトリ
- SEARCH_WORD_FILE
- 検索ワードが書かれたTXTファイル
SerpApiのパラメータ設定
SerpApiの実行に必要なパラメータを設定します。
検索ワードやAPIキーなどのSerpApiを実行するために必要な設定を行います。
必要に応じて変更してみてください
1 | # パラメータを設定 |
設定項目は下記のとおりです。
- “q”
- 検索エンジンで検索するワード
- “api_key”
- 公式サイトから取得したSerpApiのApiキー
- “gl”
- 検索地域
- “hl”
- 検索言語
- “num”
- 検索結果の取得数
SerpApiの検索を実行
SerpApiで検索を実行します。
「get_dict」を使えば検索を実行できます。
1 | # SerpApiで検索を実行 |
SerpApiの結果をJSONファイルに保存
結果はjsonで返却され、下記のコードでjsonファイルに保存されます。
1 | # 結果をファイルに保存 |
保存されたJSONファイルは下記のようになっています。
JSONを解析し、自サイトの順位を取得
SerpApiで返却されたJSONから必要なデータだけを抜き出して、自分のサイトが検索結果に表示されているかを確認します。
JSONの”organic_results”に検索結果と順位が格納されているので、項目をループさせて、判定処理を行っています。
1 | # 取得した検索結果を確認し、自サイトの順位を取得 |
JSON解析結果とサマリをファイルに出力
check_site_in_resultsでJSONを解析した結果をファイルに格納。
save_summary_csvで処理全体のサマリをファイルに格納しています。
詳細はソースのコメントをお読みください。
締め
SerpApiいかがでしょうか?
最初はseleniumで実装を試みましたが、BOT検知に引っかかって実装できなかったんですよね。
まぁそりゃそうか、、といった感じですが、回避策で簡単に実装できて個人的には満足です。
ちなみにseleniumそのものの使い方(要素取得で詰まらないクラス例)は別記事にまとめているので、よければどうぞ。
seleniumの使い方を具体例と共に解説【Python】🔗 shinpinoshi.com
本当に無料でいいのか?と思うくらい優秀なAPIなので是非皆さんも使っていってください。
SerpApiは無料アカウントならクレジットカードの登録も不要なので、安心です!
自分のサイトではこんな感じでエンジニアの知識をメモ間隔で残しています。
是非他の記事も見ていってください(^^
以上
タダで何でもできる時代万歳!!サービスを提供してくださる方には感謝しかありません。
それではお疲れさまでした。





