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

使用R抓取tokendata.io加密货币代币表格遇技术难题,求解决方案

解决R语言抓取动态网页表格的问题

嘿,我太懂你这种新手遇到动态网页抓取的挫败感了!你说的这个网站确实是用JavaScript动态渲染数据的——主页的表格不是一开始就写在HTML源码里的,而是浏览器加载页面后,通过执行JS从后端接口拉取数据再生成的,所以常规的rvest静态抓取方法自然拿不到内容。下面给你两种适合新手的解决方案:

方法一:用RSelenium模拟浏览器加载(最直观)

这个方法相当于让R控制一个真实的浏览器,等页面完全加载完所有动态内容后再抓取,就像你自己手动打开浏览器看页面一样。

步骤如下:

  1. 先安装所需的包:
install.packages("RSelenium")
install.packages("rvest")
install.packages("dplyr")
  1. 下载对应浏览器的驱动(比如Chrome的ChromeDriver),要保证驱动版本和你的浏览器版本一致,把驱动放在R能找到的路径里(或者直接指定路径)。
  2. 编写代码模拟浏览器操作:
library(RSelenium)
library(rvest)
library(dplyr)

# 启动Chrome浏览器驱动(chromever填你匹配的驱动版本)
driver <- rsDriver(browser = "chrome", chromever = "118.0.5993.70")
remDr <- driver[["client"]]

# 访问目标网站
remDr$navigate("https://www.tokendata.io/#")

# 等待页面加载完成(根据实际情况调整等待时间,比如5秒)
Sys.sleep(5)

# 获取加载完成后的页面源码
page_source <- remDr$getPageSource()[[1]]

# 用rvest解析页面,提取表格数据
page <- read_html(page_source)
table_data <- page %>% html_element("table") %>% html_table()

# 查看数据
print(table_data)

# 关闭浏览器和驱动
remDr$close()
driver$server$stop()

方法二:直接抓取后端API接口(更高效)

动态网页的表格数据几乎都是从后端API接口拉取的,找到这个接口直接请求数据,比模拟浏览器快得多,也更稳定。

操作步骤:

  1. 打开浏览器的开发者工具(按下F12),切换到「Network」标签页。
  2. 刷新目标页面,在「XHR」或「Fetch」分类里找返回JSON数据的请求(一般看请求URL里有「data」「token」这类关键词的)。
  3. 找到对应的API接口后,用R的httr或jsonlite包直接请求接口:
install.packages("httr")
install.packages("jsonlite")

library(httr)
library(jsonlite)

# 替换成你找到的真实API接口URL
api_url <- "这里替换成你找到的API地址"

# 发送GET请求获取数据(如果需要模拟浏览器请求头,可以加add_headers()参数)
response <- GET(api_url)
data_raw <- content(response, "text")
data_df <- fromJSON(data_raw)

# 把JSON数据转换成数据框(具体转换方式要看API返回的结构,可能需要调整)
final_data <- as.data.frame(data_df$data$list)

# 查看数据
print(final_data)

新手小贴士

  • 用RSelenium的时候,一定要注意浏览器驱动和浏览器版本匹配,不然会启动失败。
  • 找API接口时,可以看请求的「Response」内容,判断是不是你要的表格数据。如果接口需要请求头(比如User-Agent),可以在GET()函数里加上add_headers(User-Agent = "Mozilla/5.0...")模拟浏览器请求。

内容的提问来源于stack exchange,提问作者Jack

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:58:00