R语言(XML/rvest)下载网页表格
常用R包为XML,rvest
下载的表格首行为列名
解析网页时要理解节点的概念
extract相当于:[
extract2相当于:[[
read_html() 读取html页面
html_nodes() 提取所有符合条件的节点
html_node() 返回一个变量长度相等的list
html_table() 获取table标签中的表格
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,]tburl <- "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)
