Kaggle Dataset Search
将 Kaggle 数据集搜索或列表页面解析为结构化 JSON,每个数据集一行,包含所有者、大小、可用性评分、下载量和 notebook 数量。
API 用法
在 Crawling API 请求中添加 &scraper=kaggle-dataset-serp。在 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' -Gfrom 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。
Kaggle 实际执行的搜索词,从渲染后的搜索框中读取,读取不到时回退到请求 URL。
所有页面中匹配该搜索的数据集总数,页面未给出总数时为 null。
当前页码,无法确定时为 null。
是否还有下一页结果。
本页返回的行数。
数据集行,按其在页面上出现的顺序排列。
该行在本页中的排名,从 1 开始。
数据集显示标题。
数据集页面的绝对 URL。
数据集标识符,形式为
owner/dataset,从 URL 路径中读取。发布该数据集的账号。
所有者显示名称。
所有者资料页的绝对 URL。
数据集卡片图片的 URL。Kaggle 将其作为 CSS 背景而非图片标签提供,因此该值从内联样式中读取。
数据集最近一次更新的绝对时间戳。卡片只显示相对时间,因此该值取自其背后的提示框,并保留 Kaggle 的格式而非 ISO 8601。
Kaggle 对该数据集的可用性评分,范围为 0 到 10。
数据集中的文件数量。
卡片上显示的文件格式标签(例如
CSV)。按页面显示的数据集总大小,含单位(例如
6 kB)。Kaggle 不在列表视图中公开精确的字节数。下载次数。Kaggle 会在卡片上把超过一千的数字缩写显示(例如
362K);该值会还原为精确的整数,卡片未给出该数字时为 null。基于该数据集创建的公开 notebook 数量,与
downloads 采用相同方式从缩写形式还原。该数据集的点赞数。
该数据集获得的 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"
}
]
}