Kaggle Notebook
Разбирайте страницу отдельного ноутбука Kaggle в структурированный JSON с его автором, языком, временем выполнения, историей версий, счётчиками вовлечённости и прикреплёнными входными данными.
Kaggle отрисовывает выполненный ноутбук - ячейки, вывод и графики - внутри iframe, а не в самой странице, поэтому он не входит в этот ответ. contentUrl возвращает адрес этого фрейма; запросите его отдельным вторым запросом, когда вам нужен отрендеренный ноутбук. URL содержит короткоживущий подписанный токен, поэтому запрашивайте его вскоре после скрапинга, а не сохраняйте.
Использование API
Добавьте &scraper=kaggle-notebook к запросу Crawling API. URL-кодируйте целевой URL в параметре 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' -Gfrom 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)Пример входного URL
В параметре url работает любая страница ноутбука Kaggle - страница по адресу /code/<author>/<notebook>. Например:
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Структура ответа
Тело ответа в формате JSON. Типы полей могут быть null, если исходная страница не содержит значения.
author/notebook, прочитанный из пути URL.Python или R).16s).gold), или null, если её нет.Apache 2.0).COMPETITIONS).Пример ответа
{
"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"
}