Google Custom Search API の設定

Google 検索結果をスクレイピングしていたら「あんたロボットでしょ」と結果を見せてくれなくなったので、API を使う。
この API の無料枠は回数制限あるけど、私はこれで事足りた。
やったことは

  • Google Cloud Platform の API を使うためのキーを取得
  • 検索結果を取得する Custom Search API を有効化
  • 検索条件を指定できる  Custom Search Engine の設定

下記を参考に設定
Custom Search API を使って Google 検索結果を取得する - Qiita

URL の取得

自分しか見ないしまぁいいかなと思い、ソースコードに KEY と ID を直打ち。
検索結果は JSON 形式で受け取るので、辞書リストの扱いで要素を取ることができる。Python のリスト操作は扱いやすくてありがたい。

utils.py

# 抜粋
from googleapiclient.discovery import build
# 取得したAPIKeyとCustom Search EngineのIDをそれぞれ設定
GOOGLE_API_KEY          = "***************************************"
CUSTOM_SEARCH_ENGINE_ID = "000000000000000000000:XXXXXXXXXXX"

#上位5件を取得
getnum = 5

def getUrls(keyword):
    service = build("customsearch", "v1", developerKey=GOOGLE_API_KEY)
    result = service.cse().list(q=keyword,cx=CUSTOM_SEARCH_ENGINE_ID, \
            num=getnum).execute()
    urls = []
    if result:
        for i in range(getnum):
            #URLのみをリストに追加
            urls.append(result['items'][i]['link'])

    return urls