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

如何用R从指定URL读取HTML表格并转为dataframe?

解决方案:将国家列表数据导入R并转为DataFrame

方法1:直接读取CSV格式数据(推荐)

该数据集提供了CSV版本,相比读取HTML表格更稳定且效率更高,直接用readr包读取即可:

# 安装并加载readr包(未安装则执行安装)
if (!require(readr)) {
  install.packages("readr")
  library(readr)
}

# 读取CSV数据到dataframe
df <- read_csv("https://datahub.io/core/country-list/r/country-list.csv")

# 预览数据
head(df)

方法2:使用rvest包读取HTML表格

若需读取目标HTML页面中的表格,推荐使用维护更活跃、易用性更强的rvest包,同时注意将链接改为https(原http链接会触发网站强制重定向,导致XML包的函数加载失败):

# 安装并加载rvest包(未安装则执行安装)
if (!require(rvest)) {
  install.packages("rvest")
  library(rvest)
}

# 获取页面并提取表格
url <- "https://datahub.io/core/country-list/r/0.html"
page <- read_html(url)
df <- page %>% html_table(header = TRUE) %>% .[[1]]

# 按需重命名列
colnames(df) <- c("Country_Name", "Code")

# 预览数据
head(df)

错误原因说明

你使用XML包时出现的failed to load external entity错误,是因为目标网站强制将http请求重定向到https,而XML包的readHTMLTable函数对这种重定向的处理存在缺陷,换成https链接并使用rvest包即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 05:05:36