crawlbaseДокументация
Войти

Использование API

Добавьте &scraper=kaggle-dataset-serp к запросу Crawling API. URL-кодируйте целевой URL в параметре url.

curl 'https://api.crawlbase.com/?token=YOUR_TOKEN' \
  --data-urlencode 'url=https://www.kaggle.com/datasets?search=heart+disease' \
  --data-urlencode 'scraper=kaggle-dataset-serp' -G
from crawlbase import CrawlingAPI

api = CrawlingAPI({'token': 'YOUR_TOKEN'})
res = api.get(
    'https://www.kaggle.com/datasets?search=heart+disease',
    {'scraper': 'kaggle-dataset-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/datasets?search=heart+disease',
  { scraper: 'kaggle-dataset-serp' }
);
const data = JSON.parse(res.body);
require 'crawlbase'
api = Crawlbase::API.new(token: 'YOUR_TOKEN')

res = api.get('https://www.kaggle.com/datasets?search=heart+disease', scraper: 'kaggle-dataset-serp')
data = JSON.parse(res.body)

Пример входного URL

В параметре url работает любая страница поиска или списка датасетов Kaggle - страница по адресу /datasets, со строкой запроса или без неё. Например:

https://www.kaggle.com/datasets?search=heart+disease
https://www.kaggle.com/datasets?search=nlp&fileType=csv
https://www.kaggle.com/datasets
https://www.kaggle.com/datasets?search=weather&page=2

Структура ответа

Тело ответа в формате JSON. Типы полей могут быть null, если исходная страница не содержит значения.

url
string
URL страницы поиска, которая была обработана.
query
string | null
Поисковый запрос, который фактически выполнил Kaggle; считывается из отрендеренного поля поиска, с откатом на URL запроса.
totalCount
integer | null
Общее количество датасетов, соответствующих поиску, по всем страницам, или null, если страница не указывает итог.
page
integer | null
Номер текущей страницы, или null, если его не удалось определить.
hasNextPage
boolean
Доступна ли следующая страница результатов.
resultCount
integer
Количество строк, возвращённых на этой странице.
results
array
Строки датасетов в том порядке, в каком они идут на странице.
results[].position
integer
Позиция строки на этой странице, начиная с единицы.
results[].title
string | null
Отображаемый заголовок датасета.
results[].url
string | null
Абсолютный URL страницы датасета.
results[].slug
string | null
Идентификатор датасета в виде owner/dataset, прочитанный из пути URL.
results[].owner
object
Аккаунт, публикующий датасет.
results[].owner.name
string | null
Отображаемое имя владельца.
results[].owner.url
string | null
Абсолютный URL профиля владельца.
results[].thumbnail
string | null
URL изображения карточки датасета. Kaggle отдаёт его как CSS-фон, а не как тег изображения, поэтому он считывается из инлайн-стиля.
results[].lastUpdated
string | null
Абсолютная временная метка последнего обновления датасета. Карточка показывает только относительный возраст, поэтому значение берётся из всплывающей подсказки за ней и сохраняет форматирование Kaggle, а не ISO 8601.
results[].usabilityRating
number | null
Оценка удобства использования датасета по версии Kaggle, от 0 до 10.
results[].fileCount
integer | null
Количество файлов в датасете.
results[].fileFormat
string | null
Метка формата файлов, показанная на карточке (например, CSV).
results[].size
string | null
Общий размер датасета в том виде, как он отображается, вместе с единицами измерения (например, 6 kB). Kaggle не раскрывает точное количество байт в режиме списка.
results[].downloads
integer | null
Количество загрузок. Kaggle сокращает на карточках числа больше тысячи (например, 362K); значение разворачивается обратно в точное целое число и равно null, если карточка не показывает эту цифру.
results[].notebookCount
integer | null
Количество публичных ноутбуков, построенных на датасете; разворачивается из той же сокращённой формы, что и downloads.
results[].votes
integer | null
Количество апвоутов датасета.
results[].medal
string | null
Медаль Kaggle у датасета (например, bronze), или null, если у строки её нет.

Пример ответа

{
  "url": "https://www.kaggle.com/datasets?search=heart+disease",
  "query": "heart disease",
  "totalCount": 1628,
  "page": 1,
  "hasNextPage": true,
  "resultCount": 20,
  "results": [
    {
      "position": 1,
      "title": "Heart Disease Dataset",
      "url": "https://www.kaggle.com/datasets/johnsmith88/heart-disease-dataset",
      "slug": "johnsmith88/heart-disease-dataset",
      "owner": {
        "name": "David Lapp",
        "url": "https://www.kaggle.com/johnsmith88"
      },
      "thumbnail": "https://storage.googleapis.com/kaggle-datasets-images/216167/469115/23af5a37ef4e938b2c9a1b97662c3efc/dataset-thumbnail.jpg?t=2019-06-04-03-29-56",
      "lastUpdated": "Thu Jun 06 2019 17:33:55 GMT+0200 (Central European Summer Time)",
      "usabilityRating": 8.8,
      "fileCount": 1,
      "fileFormat": "CSV",
      "size": "6 kB",
      "downloads": 362000,
      "notebookCount": 984,
      "votes": 1859,
      "medal": "gold"
    },
    {
      "position": 2,
      "title": "Heart Disease",
      "url": "https://www.kaggle.com/datasets/oktayrdeki/heart-disease",
      "slug": "oktayrdeki/heart-disease",
      "owner": {
        "name": "Oktay Ördekçi",
        "url": "https://www.kaggle.com/oktayrdeki"
      },
      "thumbnail": "https://storage.googleapis.com/kaggle-datasets-images/6393782/10326308/95bfd024a1dc7d059e7b6f3632ed37c9/dataset-thumbnail.png?t=2024-12-29-13-32-57",
      "lastUpdated": "Sun Dec 29 2024 14:26:49 GMT+0100 (Central European Standard Time)",
      "usabilityRating": 10,
      "fileCount": 1,
      "fileFormat": "CSV",
      "size": "582 kB",
      "downloads": 22700,
      "notebookCount": 48,
      "votes": 179,
      "medal": "bronze"
    }
  ]
}