crawlbase文档
登录

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' -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
该行在本页中的排名,从 1 开始。
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
基于该数据集创建的公开 notebook 数量,与 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"
    }
  ]
}