crawlbaseDocs
Se connecter
Ce que la page de liste n'expose pas

Kaggle n'indique le total des résultats que sous la forme Results (100+), si bien que totalCountLabel est renvoyé tel quel sous forme de chaîne plutôt que converti en nombre. Les lignes comportant plusieurs auteurs affichent des avatars empilés sans URL d'image dans le document, de sorte que author.image est vide sur ces lignes. Un notebook rattaché à plusieurs compétitions affiche la première plus un badge +2 - les noms supplémentaires ne figurent pas dans la page, seul additionalContextCount peut donc être rapporté.

Utilisation de l'API

Ajoutez &scraper=kaggle-notebook-serp à 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?searchQuery=titanic' \
  --data-urlencode 'scraper=kaggle-notebook-serp' -G
from crawlbase import CrawlingAPI

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

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?searchQuery=titanic',
  { scraper: 'kaggle-notebook-serp' }
);
const data = JSON.parse(res.body);
require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')

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

Exemple d'URL en entrée

N'importe quelle page de recherche ou de liste de notebooks Kaggle fonctionne dans le paramètre url - la page située à /code, avec ou sans chaîne de requête. Par exemple :

https://www.kaggle.com/code?searchQuery=titanic
https://www.kaggle.com/code?searchQuery=xgboost&language=Python
https://www.kaggle.com/code
https://www.kaggle.com/code?searchQuery=nlp&page=2

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 de recherche qui a été scrapée.
query
string | null
Terme de recherche lu depuis l'URL de la requête. Kaggle laisse le champ de recherche affiché vide sur cette page, l'URL est donc la seule source.
totalCountLabel
string | null
Total des résultats exactement tel que Kaggle l'affiche, par exemple 100+. Renvoyé sous forme de chaîne car la page n'indique pas de nombre exact.
page
integer | null
Numéro de la page courante, ou null lorsqu'il ne peut pas être déterminé.
hasNextPage
boolean
Indique si une page de résultats supplémentaire est disponible.
resultCount
integer
Nombre de lignes renvoyées sur cette page.
results
array
Lignes de notebooks dans l'ordre où elles apparaissent sur la page.
results[].position
integer
Rang de la ligne dans cette page, à partir de 1.
results[].title
string | null
Titre affiché du notebook.
results[].url
string | null
URL absolue du notebook.
results[].slug
string | null
Identifiant du notebook sous la forme author/notebook, lu depuis le chemin de l'URL.
results[].author
object
Compte propriétaire du notebook.
results[].author.username
string | null
Identifiant du propriétaire, pris dans le premier segment du chemin de l'URL du notebook afin de fonctionner aussi sur les lignes co-écrites.
results[].author.name
string | null
Nom affiché du propriétaire.
results[].author.url
string | null
URL absolue du profil du propriétaire.
results[].author.image
string | null
URL de l'avatar du propriétaire. Vide sur les lignes co-écrites, où Kaggle affiche des avatars empilés sans URL dans le document.
results[].coauthors
array
Noms affichés des auteurs supplémentaires, sous forme de tableau de chaînes. Vide sur les notebooks à auteur unique.
results[].lastUpdated
string | null
Horodatage absolu de la dernière mise à jour du notebook. La carte n'affiche qu'un âge relatif, la valeur est donc prise dans l'infobulle située derrière et conserve le format Kaggle plutôt qu'ISO 8601.
results[].commentCount
integer | null
Nombre de commentaires sur le notebook.
results[].context
string | null
Nom de la compétition ou du jeu de données auquel le notebook est rattaché.
results[].additionalContextCount
integer
Nombre de compétitions ou de jeux de données supplémentaires auxquels le notebook est rattaché, au-delà de context. Leurs noms ne figurent pas dans la page, seul le compte est donc disponible.
results[].votes
integer | null
Nombre de votes positifs pour le notebook.
results[].medal
string | null
Médaille Kaggle sur le notebook (par exemple gold), ou null lorsque la ligne n'en porte aucune.

Exemple de réponse

{
  "url": "https://www.kaggle.com/code?searchQuery=titanic",
  "query": "titanic",
  "totalCountLabel": "100+",
  "page": 1,
  "hasNextPage": true,
  "resultCount": 20,
  "results": [
    {
      "position": 1,
      "title": "Titanic Tutorial",
      "url": "https://www.kaggle.com/code/alexisbcook/titanic-tutorial",
      "slug": "alexisbcook/titanic-tutorial",
      "author": {
        "username": "alexisbcook",
        "name": "Alexis Cook",
        "url": "https://www.kaggle.com/alexisbcook",
        "image": "https://storage.googleapis.com/kaggle-avatars/thumbnails/2603295-kg.jpg"
      },
      "coauthors": [],
      "lastUpdated": "Fri Jun 24 2022 00:25:16 GMT+0000 (Coordinated Universal Time)",
      "commentCount": 30626,
      "context": "Titanic - Machine Learning from Disaster",
      "additionalContextCount": 0,
      "votes": 60135,
      "medal": "gold"
    },
    {
      "position": 3,
      "title": "Spaceship Titanic with TFDF",
      "url": "https://www.kaggle.com/code/gusthema/spaceship-titanic-with-tfdf",
      "slug": "gusthema/spaceship-titanic-with-tfdf",
      "author": {
        "username": "gusthema",
        "name": "Gusthema",
        "url": "https://www.kaggle.com/gusthema",
        "image": ""
      },
      "coauthors": [
        "Nidhin PD"
      ],
      "lastUpdated": "Mon Apr 17 2023 09:36:29 GMT+0000 (Coordinated Universal Time)",
      "commentCount": 378,
      "context": "Spaceship Titanic",
      "additionalContextCount": 0,
      "votes": 7863,
      "medal": "gold"
    },
    {
      "position": 10,
      "title": "Titanic Top Solution",
      "url": "https://www.kaggle.com/code/brendan45774/titanic-top-solution",
      "slug": "brendan45774/titanic-top-solution",
      "author": {
        "username": "brendan45774",
        "name": "Brenda N",
        "url": "https://www.kaggle.com/brendan45774",
        "image": "https://storage.googleapis.com/kaggle-avatars/thumbnails/2681031-kg.jpg"
      },
      "coauthors": [],
      "lastUpdated": "Wed Sep 01 2021 16:03:11 GMT+0000 (Coordinated Universal Time)",
      "commentCount": 249,
      "context": "Titanic - Machine Learning from Disaster",
      "additionalContextCount": 2,
      "votes": 2294,
      "medal": "gold"
    }
  ]
}