crawlbaseDocs
Se connecter
Le corps du notebook est servi dans une iframe

Kaggle affiche le notebook exécuté - cellules, sorties et graphiques - à l'intérieur d'une iframe plutôt que dans la page elle-même, il ne fait donc pas partie de cette réponse. contentUrl renvoie l'adresse de cette iframe ; récupérez-la avec une seconde requête lorsque vous avez besoin du notebook rendu. L'URL porte un token signé de courte durée : demandez-la peu après le scraping plutôt que de la stocker.

Utilisation de l'API

Ajoutez &scraper=kaggle-notebook à une requête Crawling API. Encodez en URL l'URL cible dans le paramètre url.

curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
  --data-urlencode 'url=https://www.kaggle.com/code/alexisbcook/titanic-tutorial' \
  --data-urlencode 'scraper=kaggle-notebook' -G
from crawlbase import CrawlingAPI

api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
    'https://www.kaggle.com/code/alexisbcook/titanic-tutorial',
    {'scraper': 'kaggle-notebook'}
)

import json
data = json.loads(res['body'])
const { CrawlingAPI } = require('crawlbase');
const api = new CrawlingAPI({ token: 'YOUR_TOKEN' });

const res = await api.get(
  'https://www.kaggle.com/code/alexisbcook/titanic-tutorial',
  { scraper: 'kaggle-notebook' }
);
const data = JSON.parse(res.body);
require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')

res = api.get('https://www.kaggle.com/code/alexisbcook/titanic-tutorial', scraper: 'kaggle-notebook')
data = JSON.parse(res.body)

Exemple d'URL en entrée

N'importe quelle page de notebook Kaggle fonctionne dans le paramètre url - la page située à /code/<author>/<notebook>. Par exemple :

https://www.kaggle.com/code/alexisbcook/titanic-tutorial
https://www.kaggle.com/code/startupsci/titanic-data-science-solutions
https://www.kaggle.com/code/ldfreeman3/a-data-science-framework-to-achieve-99-accuracy

Structure de la réponse

Corps de la réponse JSON. Les types de champs peuvent être null lorsque la page source omet la valeur.

url
string
URL de la page du notebook qui a été scrapée.
slug
string | null
Identifiant du notebook sous la forme author/notebook, lu depuis le chemin de l'URL.
title
string | null
Titre affiché du notebook.
author
object
Compte propriétaire du notebook.
author.username
string | null
Identifiant du propriétaire.
author.name
string | null
Nom affiché du propriétaire.
author.url
string | null
URL absolue du profil du propriétaire.
publishedAt
string | null
Horodatage ISO 8601 de la première publication.
lastUpdated
string | null
Horodatage ISO 8601 de la version la plus récente.
thumbnail
string | null
URL de l'image de la carte du notebook.
language
string | null
Langage du notebook (par exemple Python ou R).
runtime
string | null
Temps d'exécution de la dernière exécution tel qu'affiché, unités comprises (par exemple 16s).
version
integer | null
Numéro de version actuellement affiché.
versionCount
integer | null
Nombre total de versions publiées.
views
integer | null
Nombre total de vues de la page.
votes
integer | null
Nombre de votes positifs.
copies
integer | null
Nombre de fois où le notebook a été copié ou forké.
commentCount
integer | null
Nombre de commentaires sur le notebook.
medal
string | null
Médaille Kaggle sur le notebook (par exemple gold), ou null lorsqu'il n'en porte aucune.
license
object
Licence sous laquelle le notebook est publié.
license.name
string | null
Nom affiché de la licence (par exemple Apache 2.0).
license.url
string | null
URL canonique du texte de la licence.
inputs
array
Compétitions, jeux de données et autres notebooks rattachés en entrées.
inputs[].category
string | null
Titre du groupe d'entrées tel que Kaggle le libelle (par exemple COMPETITIONS).
inputs[].title
string | null
Nom affiché de l'entrée rattachée.
contentUrl
string | null
Adresse de l'iframe qui contient le corps rendu du notebook. Porte un token signé de courte durée.

Exemple de réponse

{
  "url": "https://www.kaggle.com/code/alexisbcook/titanic-tutorial",
  "slug": "alexisbcook/titanic-tutorial",
  "title": "Titanic Tutorial",
  "author": {
    "username": "alexisbcook",
    "name": "Alexis Cook",
    "url": "https://www.kaggle.com/alexisbcook"
  },
  "publishedAt": "2022-06-24T00:25:16.1066667Z",
  "lastUpdated": "2022-06-24T00:25:16.1066667Z",
  "thumbnail": "https://storage.googleapis.com/kaggle-avatars/thumbnails/2603295-kg.jpg",
  "language": "Python",
  "runtime": "16s",
  "version": 22,
  "versionCount": 22,
  "views": 3265744,
  "votes": 60135,
  "copies": 51320,
  "commentCount": 30626,
  "medal": "gold",
  "license": {
    "name": "Apache 2.0",
    "url": "http://www.apache.org/licenses/LICENSE-2.0"
  },
  "inputs": [
    {
      "category": "COMPETITIONS",
      "title": "Titanic - Machine Learning from Disaster"
    }
  ],
  "contentUrl": "https://www.kaggleusercontent.com/kf/99170538//__results__.html"
}