You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用R的rvest与SelectorGadget爬取Kaggle数据遇character(0)错误求助

问题分析

你遇到的character(0)结果,是因为Kaggle的数据集预览表格属于动态加载内容——read_html()只能抓取页面初始的静态HTML代码,但表格数据是页面加载完成后通过JavaScript渲染出来的,静态代码里根本没有你指定的.bPYkVN元素,自然匹配不到内容。

解决方案

针对新手,推荐两种方案,优先选第一种(更高效可靠):

方案1:直接下载数据集CSV(推荐)

Kaggle数据集本身提供直接下载入口,比爬取页面预览更稳定,步骤如下:

  1. 先在Kaggle账号设置中生成API密钥(账号设置→API→Create New Token),下载kaggle.json文件
  2. 用kaggle包下载并读取数据,代码示例:
# 安装并加载依赖包
install.packages("kaggle")
library(kaggle)
library(readr)

# 配置API密钥(替换为你的kaggle.json文件路径)
kaggle_api_config(path = "~/Downloads/kaggle.json")

# 下载数据集并解压
kaggle_dataset_download_files(
  dataset = "jacouchs/marketing-budget-and-actual-sales-dataset",
  path = "./kaggle_data",
  unzip = TRUE
)

# 读取CSV并拆分变量
sales_data <- read_csv("./kaggle_data/marketing_budget_and_actual_sales.csv")
marketing_budget <- sales_data$Marketing_Budget
actual_sales <- sales_data$Actual_Sales

# 查看结果
head(marketing_budget)
head(actual_sales)

方案2:用RSelenium爬取动态页面(适合必须爬预览的场景)

如果一定要抓取页面上的预览表格,需要用能处理JavaScript的动态爬虫工具,比如RSelenium:

# 安装并加载依赖包
install.packages("RSelenium")
library(RSelenium)
library(rvest)
library(dplyr)

# 启动Chrome驱动(需提前安装对应版本的ChromeDriver)
driver <- rsDriver(browser = "chrome", port = 4567L)
remote_driver <- driver[["client"]]

# 打开目标页面并等待加载完成
remote_driver$navigate("https://www.kaggle.com/datasets/jacouchs/marketing-budget-and-actual-sales-dataset")
Sys.sleep(5) # 根据网络情况调整等待时间

# 获取包含动态内容的页面源码
page_source <- remote_driver$getPageSource()[[1]]
page <- read_html(page_source)

# 提取表格数据(注意:Kaggle页面类名可能会变动,需重新用SelectorGadget确认)
table_cells <- page %>% html_nodes(".sc-cPuPxo.gWpXHw") %>% html_text()

# 拆分数据到两个变量(按奇偶位置拆分对应两列)
marketing_budget <- table_cells[seq(1, length(table_cells), 2)]
actual_sales <- table_cells[seq(2, length(table_cells), 2)]

# 关闭驱动
remote_driver$close()
driver$server$stop()
注意事项
  • Kaggle页面的CSS类名(比如你之前用的.bPYkVN)会不定期更新,用SelectorGadget选元素后要确认当前页面的类名是否有效
  • 直接下载数据集是最稳定的方式,爬取页面预览容易受页面结构变动影响
  • 使用Kaggle API时,要确保kaggle.json路径正确,且不要泄露密钥

内容的提问来源于stack exchange,提问作者Remzi Efe Açıkel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 13:23:19