0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Google Colaboでkaggle(カグル)API

Posted at

Kaggleとは、Google傘下の会社で予測モデリングを行う会社とそのサービスを指します。読み方は「カグル」です。Kaggleでは予測モデリングや分析手法のプラットフォーム運営を行いながら、研究者がデータを投稿してモデルの良し悪しを競争し、手法のブラッシュアップを図っています。

APIの準備は以下
https://github.com/Kaggle/kaggle-api/

必須のkaggle.jsonファイルは、以下のファイル作成か、
マイドライブ直下にアップロード 

!mkdir ~/.kaggle
!touch ~/.kaggle/kaggle.json

api_token = {"username":"your_name","key":"your_keyxxxxxxxxxxxxxxxxxx"}

import json

with open('/root/.kaggle/kaggle.json', 'w') as file:
    json.dump(api_token, file)

!chmod 600 ~/.kaggle/kaggle.json
!cat ~/.kaggle/kaggle.json

結局ファイル作成版はうまくいかなかったので
マイドライブにアップロードしました

from google.colab import drive
import os
import json
import requests
from datetime import datetime

drive.mount('/content/drive')

# Kaggle APIのベースURL
BASE_URL = 'https://www.kaggle.com/api/v1'

# APIキーとユーザー名の読み取り
def load_kaggle_credentials():
    kaggle_path = '/content/drive/MyDrive/.kaggle/kaggle.json'

    if not os.path.exists(kaggle_path):
        raise FileNotFoundError(f"Kaggle API credentials not found at {kaggle_path}")
    
    with open(kaggle_path, 'r') as f:
        credentials = json.load(f)
    
    return credentials['username'], credentials['key']

# 賞金情報の取得
def get_prizes():
    try:
        username, key = load_kaggle_credentials()
        
        url = f'{BASE_URL}/competitions/list'
        
        # Basic認証を使用
        auth = (username, key)
        
        response = requests.get(url, auth=auth)
        
        # レスポンスのステータスコードをチェック
        response.raise_for_status()
        
        # レスポンスからデータを取得
        competitions = response.json()
        
        prizes = []
        for comp in competitions:
            # 賞金タイプと金額のチェック
            if comp.get('reward'):
                print(f"コンペティション名: {comp.get('title')}")
                print(f"賞金: {comp.get('reward')}")
                print(f"コンペティションURL: {comp.get('ref')}")
                print("-" * 20)

    except requests.exceptions.RequestException as e:
        print(f"APIリクエストエラー: {e}")
    except FileNotFoundError as e:
        print(e)
    except Exception as e:
        print(f"予期せぬエラーが発生しました: {e}")

# 賞金情報を取得
get_prizes()

うまくいけば以下の結果がでる

コンペティション名: AI Mathematical Olympiad - Progress Prize 2
賞金: 2,117,152 Usd
コンペティションURL: https://www.kaggle.com/competitions/ai-mathematical-olympiad-progress-prize-2
--------------------
コンペティション名: Konwinski Prize
賞金: 1,225,000 Usd
コンペティションURL: https://www.kaggle.com/competitions/konwinski-prize
--------------------
コンペティション名: Stanford RNA 3D Folding
賞金: 75,000 Usd
コンペティションURL: https://www.kaggle.com/competitions/stanford-rna-3d-folding
--------------------
コンペティション名: CIBMTR - Equity in post-HCT Survival Predictions
賞金: 50,000 Usd
コンペティションURL: https://www.kaggle.com/competitions/equity-post-HCT-survival-predictions
--------------------
コンペティション名: NeurIPS 2024 - Lux AI Season 3
賞金: 50,000 Usd
コンペティションURL: https://www.kaggle.com/competitions/lux-ai-season-3
--------------------
コンペティション名: March Machine Learning Mania 2025
賞金: 50,000 Usd
コンペティションURL: https://www.kaggle.com/competitions/march-machine-learning-mania-2025
--------------------
コンペティション名: Drawing with LLMs
賞金: 50,000 Usd
コンペティションURL: https://www.kaggle.com/competitions/drawing-with-llms
--------------------
コンペティション名: Binary Prediction with a Rainfall Dataset
賞金: Swag
コンペティションURL: https://www.kaggle.com/competitions/playground-series-s5e3
--------------------
コンペティション名: Titanic - Machine Learning from Disaster
賞金: Knowledge
コンペティションURL: https://www.kaggle.com/competitions/titanic
--------------------
コンペティション名: Housing Prices Competition for Kaggle Learn Users
賞金: Knowledge
コンペティションURL: https://www.kaggle.com/competitions/home-data-for-ml-course
--------------------
コンペティション名: House Prices - Advanced Regression Techniques
賞金: Knowledge
コンペティションURL: https://www.kaggle.com/competitions/house-prices-advanced-regression-techniques
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?