第一種方法
library("rvest")
page <- read_html("https://cran.rstudio.com/web/packages/available_packages_by_name.html")
pkg_table <- page %>% html_table(fill = T)
class(pkg_table)
# 返回list,這個list應該包含了網頁中的所有table
# 但因為整個網頁就只有一個table,所以我們要找的表格就在第一個list中
pkg_table <- pkg_table %>% as.data.frame()
# 轉化為數據框才能數據進行缺失值處理
head(pkg_table)
第二種方法
pkg_table <- page %>% html_node('table') %>% html_table(fill=TRUE)
class(pkg_table)
# 返回數據框
# 由於原表格沒有表頭(沒有<th>標簽),因此數據框使用默認的表頭X1,X2代替
# 使用fill=T,會自動填補行列中的缺失值,比如這里的第一行
dim(pkg_table)
# 刪除缺失值
pkg_table <- pkg_table[complete.cases(pkg_table), ]
# 定義表頭
colnames(pkg_table) <- c("name","title")
head(pkg_table,3)