vlambda博客
学习文章列表

R语言(XML/rvest)下载网页表格

  1. 常用R包为XML,rvest

  2. 下载的表格首行为列名

  3. 解析网页时要理解节点的概念

  4. extract相当于:[

  5. extract2相当于:[[

  6. read_html() 读取html页面

  7. html_nodes() 提取所有符合条件的节点

  8. html_node() 返回一个变量长度相等的list

  9. html_table() 获取table标签中的表格

  10. extract2() 提取list中的表格


XML包

# XML实现网页抓取表格----library(XML)# 网页表格待下载url <- "http://cbadata.sports.sohu.com/ranking/players/2020/0/6"# 解析网页doc <- htmlParse(url)# 获取表格tableNodes <- getNodeSet(doc, "//table")list(tableNodes)# 将HTML转换为数据框tb <- readHTMLTable(tableNodes[[13]])# 简写tb <- htmlParse("http://cbadata.sports.sohu.com/ranking/players/2020/0/6") %>%  getNodeSet("//table") %>%  .[[13]] %>%  readHTMLTable()names(tb) <- tb[1,]tb <- tb[-1,]tb
url <- "http://cbadata.sports.sohu.com/ranking/players/2020/0/6"tb <- readHTMLTable(url,which = 13)names(tb) <- tb[1,]tb <- tb[-1,]


rvest包

# 网页抓取----library(rvest)ls("package:rvest")library(magrittr)# 实战----# 以中国统计局的网页为例tjj_html <- read_html("http://www.stats.gov.cn/tjzs/cjwtjd/201407/t20140714_580886.html")res_table <- tjj_html %>%  html_nodes("table") %>% html_table(header=TRUE) %>%   extract2(2)