crawlbaseDocs
Anmelden
Der Notebook-Inhalt wird in einem Iframe ausgeliefert

Kaggle rendert das ausgeführte Notebook - Zellen, Ausgaben und Diagramme - in einem Iframe statt in der Seite selbst, daher ist es nicht Teil dieser Response. contentUrl liefert die Adresse dieses Frames; rufen Sie sie als zweiten Request ab, wenn Sie das gerenderte Notebook benötigen. Die URL enthält ein kurzlebiges signiertes Token, fordern Sie sie also bald nach dem Scrapen an, statt sie zu speichern.

API-Nutzung

Fügen Sie &scraper=kaggle-notebook zu einem Crawling API-Request hinzu. URL-kodieren Sie die Ziel-URL im url-Parameter.

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)

Beispiel-Eingabe-URL

Im url-Parameter funktioniert jede Kaggle-Notebook-Seite - die Seite unter /code/<author>/<notebook>. Zum Beispiel:

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

Response-Struktur

JSON-Response-Body. Feldtypen können null sein, wenn die Quellseite den Wert nicht enthält.

url
string
URL der gescrapten Notebook-Seite.
slug
string | null
Notebook-Kennung in der Form author/notebook, gelesen aus dem URL-Pfad.
title
string | null
Anzeigetitel des Notebooks.
author
object
Account, dem das Notebook gehört.
author.username
string | null
Handle des Eigentümers.
author.name
string | null
Anzeigename des Eigentümers.
author.url
string | null
Absolute URL des Eigentümerprofils.
publishedAt
string | null
ISO-8601-Zeitstempel der Erstveröffentlichung.
lastUpdated
string | null
ISO-8601-Zeitstempel der jüngsten Version.
thumbnail
string | null
Bild-URL der Notebook-Karte.
language
string | null
Notebook-Sprache (zum Beispiel Python oder R).
runtime
string | null
Ausführungszeit des letzten Laufs wie angezeigt, inklusive Einheiten (zum Beispiel 16s).
version
integer | null
Aktuell angezeigte Versionsnummer.
versionCount
integer | null
Gesamtzahl der veröffentlichten Versionen.
views
integer | null
Gesamtzahl der Seitenaufrufe.
votes
integer | null
Anzahl der Upvotes.
copies
integer | null
Wie oft das Notebook kopiert oder geforkt wurde.
commentCount
integer | null
Anzahl der Kommentare zum Notebook.
medal
string | null
Kaggle-Medaille für das Notebook (zum Beispiel gold), oder null, wenn es keine trägt.
license
object
Lizenz, unter der das Notebook veröffentlicht ist.
license.name
string | null
Anzeigename der Lizenz (zum Beispiel Apache 2.0).
license.url
string | null
Kanonische URL des Lizenztexts.
inputs
array
Wettbewerbe, Datensätze und andere Notebooks, die als Inputs angehängt sind.
inputs[].category
string | null
Überschrift der Input-Gruppe, so wie Kaggle sie beschriftet (zum Beispiel COMPETITIONS).
inputs[].title
string | null
Anzeigename des angehängten Inputs.
contentUrl
string | null
Adresse des Iframes, der den gerenderten Notebook-Inhalt enthält. Enthält ein kurzlebiges signiertes Token.

Beispiel-Response

{
  "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"
}