【发布时间】:2014-04-22 23:52:31
【问题描述】:
我正在尝试通过从网络上抓取来制作数据框。但是有多个页面组成了我要抓取的表格。相同的链接,但页面不同。
对于第一页,我会这样刮:
library(XML)
CB.13<- "http://www.nfl.com/stats/categorystats?tabSeq=1&season=2013&seasonType=REG&experience=&Submit=Go&archive=false&conference=null&d-447263-p=1&statisticPositionCategory=DEFENSIVE_BACK&qualified=true"
CB.13<- readHTMLTable(CB.13, header=FALSE)
cornerback.function<- function(CB.13){
first<- "1"
last<- "1"
for (i in 1:length(CB.13)){
lastrow<- nrow(CB.13[[i]])
lastcol<- ncol(CB.13[[i]])
if(as.numeric(CB.13[[i]] [1,1]) ==first & as.numeric(CB.13[[i]] [lastrow, lastcol]) ==last) {
tab <- i
}
}
}
cornerback.function(CB.13)
cornerbacks.2013<- CB.13[[tab]]
cb.names<- c("Rk", "name", "Team", "Pos", "Comb", "Total", "Ast", "Sck", "SFTY", "PDef", "Int", "TDs", "Yds", "Lng", "FF", "Rec", "TD")
names(cornerbacks.2013)<- cb.names
我需要这样做多年,所有页面都有多个页面 - 那么有没有更快的方法来获取数据的所有页面,而不必为表格的每个单独页面执行此操作并合并它们?下一个链接是http://www.nfl.com/stats/categorystats?tabSeq=1&season=2013&seasonType=REG&Submit=Go&experience=&archive=false&conference=null&d-447263-p=2&statisticPositionCategory=DEFENSIVE_BACK&qualified=true
今年有 8 页——也许是一个 for 循环来循环页面?
【问题讨论】:
-
好吧,我做到了……你对这个有什么建议吗
标签: xml r web-scraping