Pythonでgoogle-search-resultsを用いてGoogle検索結果をスクレイピングする

Pythonでgoogle-search-resultsを用いてGoogle検索結果をスクレイピングしてみます。

今回はgoogle-search-resultsを使用します。このライブラリ・モジュールはPythonの標準ライブラリではありませんので、事前にインストールする必要があります。

また、google-search-resultsでは、SerpApi(https://serpapi.com/)のAPIkeyが必要になります。今回は、FreePlan(無料プラン)に事前に登録しています。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■SerpApiのApi Keyを取得

SerpApi(https://serpapi.com/)にアクセスすると、「Register(登録)」ボタンがWebサイト上部に表示されていますので、こちらをクリックし、「Sign up」のために、GithubかGoogleアカウント、もしくはメールアドレス等の情報を入力し、Sign upを試みます。Sign up後、登録するための情報を入力・設定し、SerpApiのアカウントの登録は完了となります。

完了後、SerpApiのダッシュボードが表示されますので、左側のメニューから「Api Key」をクリックします。

クリックすると、「Api Key」の画面が表示され、「Your Private API Key」の項目にPrivate API Keyが表示されます。この情報をコピーします。これでApi Keyの取得は完了です。

■google-search-resultsを用いてGoogle検索結果をスクレイピングする

完了後、google-search-resultsを用いてGoogle検索結果をスクレイピングするスクリプトを書いていきます。

■コード

from serpapi import GoogleSearch

search = GoogleSearch({
    "q":"大阪市",
    "location":"Osaka,Osaka,Japan",
    "api_key":"your private api key"    
    })

result = search.get_dict()

print(result)

「from import」でserpapiのGoogleSearchを呼び出します。

その後に、searchという変数を定義し、その中でGoogleSearch()を用います。括弧内には、引数,パラメータとして、Google検索で検索するキーワード等を渡します。今回は「大阪市」というキーワード(q)で、location(場所)は「Osaka,Osaka,Japan」とし、api_keyでコピーしたPrivate API Keyを貼り付けます。これでスクレイピングの準備を完了です。

最後に、resultという変数を定義し、その中でsearch変数に対してget_dict()を用いて、検索した結果をresult変数に格納します。格納した検索結果の情報をprint()で出力します。

■実行・検証

このスクリプトを「g_search_test.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみると、今回指定したキーワード等でGoogleでの検索が行われ検索結果を出力させることができました。

出力されたデータを確認すると、json形式のファイルも生成されていることや、今回は日本語でのキーワード指定を行いましたが、日本語であっても、検索結果が出力されることができました。

コメント

タイトルとURLをコピーしました