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

使用R语言rvest包爬取泰晤士高等教育影响力排名表格并规整为Tidy格式

泰晤士高等教育影响力排名爬取与规整方案

问题根源

你的代码仅提取了页面容器的纯文本,未定位到核心的排名表格节点,且该页面表格依赖动态渲染,静态爬取需精准定位表格元素并做后续规整。

静态爬取修正代码

library(tidyverse)
library(rvest)
library(janitor)

# 目标页面
link <- "https://www.timeshighereducation.com/impactrankings"

# 读取页面并提取表格
webpage <- read_html(link)
rank_table <- webpage %>%
  # 定位排名表格(浏览器开发者工具可确认此选择器)
  html_element("#ranking-table") %>%
  html_table(fill = TRUE) %>%
  clean_names() # 标准化列名

# 规整为目标格式
tidy_rank_data <- rank_table %>%
  transmute(
    rank = rank,
    university_name = university,
    sdg_goal_1 = sdg_1_no_poverty,
    sdg_goal_2 = sdg_2_zero_hunger,
    sdg_goal_3 = sdg_3_good_health_and_well_being,
    sdg_goal_4 = sdg_4_quality_education,
    overall_score = overall,
    country = location
  )

# 查看结果
head(tidy_rank_data)

核心注意事项

  • 选择器校准:若页面结构更新,需在浏览器F12开发者工具中重新获取表格的CSS选择器(替换#ranking-table)。
  • 并列排名处理:排名列可能出现1=这类并列标记,如需转为数值,可执行mutate(rank = str_remove(rank, "=") %>% as.numeric())。
  • 多页数据爬取:静态爬取仅能获取第一页数据,如需全量数据,可分析分页URL的page参数规律,循环遍历所有分页链接。

动态渲染页面适配方案

若静态爬取无法获取完整表格(页面依赖JS加载数据),使用RSelenium模拟浏览器:

library(RSelenium)

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

# 访问页面并等待加载
remDr$navigate(link)
Sys.sleep(5) # 等待时间可根据网络情况调整

# 提取页面源码并处理
page_source <- remDr$getPageSource()[[1]]
webpage_dynamic <- read_html(page_source)
rank_table_dynamic <- webpage_dynamic %>%
  html_element("#ranking-table") %>%
  html_table(fill = TRUE) %>%
  clean_names()

# 规整数据(同静态爬取的transmute步骤)
tidy_rank_data_dynamic <- rank_table_dynamic %>%
  transmute(
    rank = rank,
    university_name = university,
    sdg_goal_1 = sdg_1_no_poverty,
    sdg_goal_2 = sdg_2_zero_hunger,
    sdg_goal_3 = sdg_3_good_health_and_well_being,
    sdg_goal_4 = sdg_4_quality_education,
    overall_score = overall,
    country = location
  )

# 关闭驱动
remDr$close()
driver$server$stop()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:24:51