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